抽象类和接口都属于常用类结构设计, 在开发之中都会出现,不过按照优先选择来讲,接口一定要比抽象类更方便。(抽象类能够做一些共同接口子类的间接实现)
从概念上来讲两者进行一下简单的对比:
NO | 区别点 | 抽象类 | 接 口 |
1 | 关键字 | abstract class 类名称{ } | interface接口名称 |
2 | 结构组成 | 抽象方法、普通方法、全局常量、全局变量、属性、构造方法 | 抽象方法和全局常量 |
3 | 权限 | 可以使用各种权限 | 只能够使用public访问权限 |
4 | 子类使用 | 子类利用extends关键字来继承抽象类 | 子类利用implements关键字来实现接口 |
5 | 关系 | 一个抽象类可以实现若干个接口 | 一个接口不能继承抽象类,但是可以使用extends来继承多个父接口 |
6 | 子类限制 | 一个子类只能够继承一个抽象类 | 一个子类可以实现多个接口 |
除了单继承的局限之外,实际上使用抽象类和接口都是类似的,但是在实际的开发之中,抽象类的设计要比接口复杂。现在要求掌握的就是如何去定义接口以及更好的实现子类。
对于现在已经学习的概念发现结构体很多:类、对象、抽象类、接口,那么这几者的具体关系实际上可以通过如下的一张图来描述。
总之:
1.接口是java的核心,慢慢需要学习到接口更多的使用以及设计;
2、开发之中优先考虑接口,以避免单继承局限