No | 区别 | 抽象类(abstract) | 接口(interface) |
---|---|---|---|
1 | 结构组成 | 普通类+抽象方法 | 抽象方法+全局常量 |
2 | 权限 | 各种权限 | public |
3 | 子类使用 | 使用extends关键字继承抽象类 | 使用implements关键字实现接口 |
4 | 关系 | 一个抽象类可以实现若干个接口 | 接口不能继承抽象类,但是接口可以使用extends关键字继承多个父接口 |
5 | 子类限制 | 一个子类只能继承一个抽象类 | 一个子类可以实现多个接口 |
除了单继承局限外,实际中使用抽象类和接口都是类似的。在实际开发中,抽象类的设计比接口复杂。现在只要掌握定义接口和如何更好的实现子类就可以了。
接口是java的核心
开发中优先考虑接口,避免单继承局限。
抽象类是模板,有层次感。接口则更关心行为与混合。