抽象类和接口的区别
1. 成员区别
抽象类:
成员变量:可以是变量,也可以是常量。
构造方法:有。
成员方法:可以是抽象,也可以是非抽象。
接口:
成员变量:只可以是常量。
构造方法:无。
成员变量:只可以是抽象,在JDK1.8之后使用default关键字的方法可以是非抽象。
2. 关系区别
类与类:
继承,da单继承。
类与接口:
实现,单实现或多实现。
接口与接口:
继承,单继承或多继承。
3. 设计理念区别
抽象类 被继承体现的是“is a”的关系。抽象类中定义的该继承体系中的共性功能。
接口 被实现体现的是“like a”的关系。接口中定义的是该体系的扩展功能。