由于在性质上,接口与抽象类之间十分地相近,所以本篇博文是为了给同学们展示接口与抽象类之间的联系 与 区别的。
那么,话不多说,开始本篇博文的讲解吧!
抽象类:
请观看本人博文——《详解 抽象类》
接口:
请观看本人博文——《详解 接口》
抽象类 与 接口的区别:
- 成员区别:
抽象类:
- 成员变量:可以变量,也可以常量
- 构造方法:有
- 成员方法:可以抽象,也可以非抽象
接口:
- 成员变量:只可以常量
- 成员方法:只可以抽象
- 关系区别:
- 类与类
继承,单继承- 类与接口
实现,单实现,多实现- 接口与接口
继承,单继承,多继承
- 设计理念区别:
抽象类 :
被继承体现的是:”is a”的关系。
抽象类中定义的是该继承体系的共性功能。
接口 :
被实现体现的是:”like a”的关系。
接口中定义的是该继承体系的扩展功能。
(注意:对于抽象方法,JDK1.8之后在接口中提供了用default修饰的方法,可以给出功能的具体实现,子类可以继承下去用,也可覆盖重写)