29
2020
11

抽象类(abstract class)和接口(interface)有什么异同?

不同点:

 

● 抽象类中可以定义构造器,接口不能;

 

● 抽象类可以有抽象方法和具体方法,接口不能有具体方法;

 

● 接口中的成员全都是 public 的,抽象类中的成员可以使用private、public、protected、默认等修饰;

 

● 抽象类中可以定义成员变量,接口中只能是常量;

 

● 有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法;

 

● 抽象类中可以包含静态方法,接口中不能有静态方法;

 

● 一个类只能继承一个抽象类,一个类可以实现多个接口;

 

相同点:

 

● 不能够实例化;

 

● 可以将抽象类和接口类型作为引用类型;

 

● 一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类;

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。