抽象类和接口的区别
A:成员区别
- 抽象类:
- 成员变量:可以是变量,也可以是常量
- 构造方法:有(可子类进行初始化使用)
- 成员方法:可以是抽象(子类必须对他进行重写),可以是非抽象(子类可以继承下来直接使用)。
- 接口:
- 成员变量:只可以是常量。
- 成员方法:只可以是抽象方法。
- 抽象类:
B:关系区别
- 类与类:继承,单继承
- 类与接口:实现,单实现,多实现
- 接口与接口:继承,单继承,多继承
C:设计理念区别
- 抽象类 被继承体现的是:“is a”的关系。抽象类中定义的是该继承体系的共性功能。
- 接口 被实现体现的是:“like a”的关系。接口中定义的是该继承体系的扩展功能。