抽象类与接口的异同 |
| 抽象类 abstract class
| 接口interface,当抽象类方法都是抽象时,可以表示为接口,接口是公开的。
|
成员变量
| 可以是 变量/常量
| 只能是常量:public static final
|
成员方法
| 可以是抽象/非抽象,可以包含静态方法,public/protected修饰
| 只能是抽象,没有方法体,没有静态方法,public abstract
|
构造方法
| 有
| 没有
|
关系区别
| 1. 类与类:继承,单继承
2. 一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
| 1. 类与接口:实现,单/多实现
2. 接口与接口:继承,单/多继承
3. 实现接口需要实现接口定义的所有方法
|
设计理念
| 被继承体现的是is a的关系,抽象类中定义的是继承体系的共性功能。
| 被实现体验的是like a的关系,接口中定义的是该继承体系的扩展功能。
|