抽象类和接口都是属于常用的类结构设计,在开发中都会出现,但就优先选择来讲,接口比抽象类更方便。它们的区别如下表:
No. | 区别点 | 抽象类 | 接口 |
1 | 关键字 | abstract class | interface |
2 | 结构组成 | 抽象方法、普通方法、全局常量、属性、构造方法 | 抽象方法和全局常量 |
3 | 访问权限 | 各种访问权限 | 只能使用public |
4 | 子类使用 | extends | implements |
5 | 关系 | 一个抽象类可以实现若干个接口 | 一个接口不能继承抽象类,但可以使用extends来继承多个父接口 |
6 | 子类限制 | 一个子类只能继承一个抽象类 | 一个子类可以实现多个接口 |