接口和抽象类
相同:
1.都不能实例化对象
2.可以将抽象勒里和接口作为引用类型
3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现
否则该类仍然需要被声明为抽象类
不同
| 接口 | 抽象类 | |
| 定义构造器 | 不能 | 能 |
| 方法 | 全是抽象方法 | 可有抽象方法和具体方法 |
| 成员 | private、默认、protected、public | public |
| 成员变量 | 实际上都是常量 | 可定义成员变量 |
| 静态方法 | 不能有 | 可以有 |
| 继承和实现 | 多实现 | 单继承 |
| 有抽象方法的类必须声明为抽象类、而抽象类未必有抽象方法 |