抽象类

类可以定义为抽象类

有抽象方法的类都是抽象类

抽象方法应用场景:

  1. 方法的实现没想好

  2. 无法统一子类的实现

如果父类中有抽象方法,子类不实现,子类必须为抽象类

抽象类不能被实例化

  1. 抽象类不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法
  1. 属性:Abstract只能修饰类,方法。属性(成员变量)都有具体的值。
  2. 私有方法:如果能修饰,子类可以实现私有方法。私有方法只有本类能访问到,子类没有访问权限,既然不能访问就不能实现,子类必须定义为抽象类,子类继承类也必须是抽象类。子类中没有类能定义为非抽象类,无法用构造方法创建对象。
  3. 构造方法:构造方法特点:和本类类名相同。构造方法在子类中不能被重写。如果能够修饰构造方法,构造方法在父类中只有声明,需要在子类中重写。所有不能修饰,矛盾
  4. 静态方法:静态方法调用规则:类名.静态方法。如果能修饰,静态方法只能声明,不能有实现。矛盾
  5. Final:final修饰的方法,不能被重写。如果用abstract修饰,目的是让子类实现这个方法。又不能被重写,又要求实现,矛盾

接口应用场景:

  1. 无法统一实现,即使实现了意义也不大
  2. 软件实现流程,详细设计阶段。统一类功能,方法名,返回,参数等信息

接口的特点:

  1. 用 interface 来定义。
  2. 接口中的所有成员变量都默认是由public static final修饰的。
  3. 接口中的所有方法都默认是由public abstract修饰的。
  4. 接口没有构造方法。
  5. 实现接口的类必须提供接口中所有方法的具体实现内容。

抽象类VS接口

相同点:

  1. 接口和抽象类都不能被实例化。只能被其他类实现和继承。
  2. 接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法,否则实现的类就是抽象类。

不同点:

  1. 抽象类与接口定义不同:抽象类abstract class ,接口  interface
  2. 一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java的单继承不足
  3. 接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成属于抽象类的初始化操作。
  4. 接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量
  5. 接口里不能定义静态方法;抽象类可以定义静态方法
  6. 接口里只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通的方法。

接口和和抽象的区别总结相关推荐

  1. 抽象类(abstract class)和接口(Interface)的区别

    抽象类(abstract class)和接口(Interface)的区别 前言 抽象类(abstract class)和接口(Interface)是Java语言中对于抽象类定义进行支持的两种机制,赋予 ...

  2. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...

    本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...

  3. 接口和抽象类有什么区别?

    面试题汇总 接口和抽象类有什么区别? 普通类可以实例化,接口都不能被实例化(它没有构造方法),抽象类如果要实例化,抽象类必须指向实现所有抽象方法的子类对象(抽象类可以直接实例化,直接重写自己的抽象方法 ...

  4. 我应该如何解释接口和抽象类之间的区别?

    本文翻译自:How should I have explained the difference between an Interface and an Abstract class? In one ...

  5. c#中抽象类(abstract)和接口(interface)的相同点与区别

    相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不 ...

  6. 接口和抽象类有什么区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样.接口是对动作的抽象,抽象类是对根源的抽象. 抽象类表示的是,这个对象是什么.接口表示的是,这个对象能做什么.比如 ...

  7. java接口比继承优秀的地方,实现和继承的区别 java 实现接口和继承有什么区别...

    Java中继承和实现的区别 理论上:类只能单继承,接口可以多继承(接口应该叫实现): 实践上:小编们说类的继承一般继承的是事物的属性,如:姓名,年龄,性别 等,而接口的继承(或者说实现)一般是继承事物 ...

  8. axios请求接口http_使用axios请求接口,几种content-type的区别详解

    axios的使用 安装(一般使用框架的话, 脚手架都集成了) $ npm install axios 请求示例 // POST axios.post('/user', { firstName: 'Fr ...

  9. 配置静态路由下一跳为本地出战接口和IP地址的区别

    配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口.在点对点的网络中,两者可能没有什么差别,但在以太网中或者NBMA网 ...

最新文章

  1. Twitter在超分辨率技术上取得新进展,能还原打码图片
  2. 新手搭建简洁的Express-React-Redux脚手架
  3. 深入理解javascript的闭包
  4. 全球及中国汽车轮胎再制造市场销售产值与运营发展模式分析报告2022年
  5. TensorRT学习笔记3 - 运行sampleMNIST
  6. 《mysql必知必会》学习_第11章_20180801_欢
  7. linux ntp同步日志,Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份同步
  8. SAP CRM Service Order(服务订单)的状态字段设计原理介绍
  9. 认识Mahout下的云计算机器学习
  10. 一步步编写操作系统 28 cpu乱序执行
  11. LeetCode 1897. 重新分配字符使所有字符串都相等
  12. 嵌入式linux写文件内存增加,嵌入式Linux对内存的直接读写
  13. 【HNOI2017】礼物
  14. Linux 进程状态 说明
  15. webpack之loader篇
  16. 如何在线倍速观看百度网盘学习视频并快速做笔记
  17. 如何批量压缩图片体积大小kb?
  18. 观《五星大饭店》有感
  19. 资源暂时不可用错误(Out of memery)完美解决方案
  20. 各个国家的人有什么特点?

热门文章

  1. 析因设计方差分析(单独效应,主效应,交互效应)
  2. termux安装ubuntu18_TERMUX安装ubuntu并图形化
  3. 马斯克官宣:卸任推特CEO,继承者是她,网友:不会是女版的你吧!
  4. 教你按文件类型归类的简单方法
  5. Redis集群只读问题
  6. HUAWEI MateBook新品搭载华为应用市场Windows升级版 支持运行移动应用
  7. 批量在所有文件夹名称的后面添加相同的后缀
  8. 买笔记本必须带 9款小巧测试软件推荐
  9. 用python做软件开发有前途吗_做软件开发有前途吗?
  10. java jpanel_Java JPanel.setAutoscrolls方法代码示例