版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18948359/article/details/84888296
抽象类与接口的区别:
No. |
区别 |
抽象类 |
接口 |
1 |
关键字 |
abstract class |
interface |
2 |
组成 |
构造方法、普通方法、抽象方法、static方法、常量、变量 |
抽象方法、全局常量 |
3 |
子类使用 |
class 子类 extends 抽象类 |
class 子类 implements 接口,接口... |
4 |
关系 |
抽象类可以实现多个接口(因为抽象类也是一个类对象) |
接口不能够继承抽象类,但是可以继承多个父接口 |
5 |
权限 |
可以使用各种权限(访问权限) |
只能使用 public 权限 |
6 |
限制 |
单继承局限(一个子类只能够继承一个父抽象类) |
没有单继承局限 |
7 |
子类 |
抽象类和接口都必须有子类,子类必须要覆写全部的抽象方法 |
|
8 |
实例化对象 |
依靠子类对象的向上转型进行对象的实例化 |
经过比较发现,抽象类中支持的功能比接口更多,但是只有一点不好,那就是单继承局限,所以这重要的一点就掩盖了所有抽象类的优点。即:当抽象类和接口都可以使用的时候,优先使用接口。
总体来说:抽象类就是更加具有“类”的特性;接口就更加的抽象。
附: