Java面向对象基本特征(4)


抽象类和接口的对比

参数
  抽象类   接口  
实现   子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。   子类使用关键字implements来实现接口。  
构造器   可以有构造器   无构造器  
修饰符   抽象方法可以有public、protected和default这些修饰符   接口方法默认修饰符是public。你不可以使用其它修饰符。  
main方法   抽象方法可以有main方法并且我们可以运行它   没有main方法  
多继承   抽象类可以继承一个类和实现多个接口   接口只可以继承一个或多个其它接口  
速度   要快些   慢些  

(1)如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类。

(2)如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。

(3)如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a88d744f8421d9fcdc5ed7eaf7b9abb4.html