| 抽象类 | 接口 |
|---|---|
| 关键字abstract class | 关键字interface |
| 子类extends继承抽象类,单基础(is-a) | 子类implements实现接口,多实现(like-a) |
| 可以有构造器,构造器不是用来实例化的,用来给子类初始化的 | 不能有构造器 |
| 成员变量权限publish、protected、private和default都可以 | 成员变量权限默认都是public static final,也就是说接口中声明的变量都为常量不能被继承 |
| 抽象方式权限只有public、protected和default三种 | 接口方法权限默认为public,既public abstract |
| 可以包含静态代码块,也可以有静态方式 | 不可以有静态代码块,可以有静态方法 |
| 可以有普通方法 | 方法都是抽象的,不可以有普通方法 |
| 继承者如果全部实现抽象方式就不再是抽象类了,否则还是抽象类 | 下一代只可为实现者 |



