抽象类(abstract class)和接口(interface)的异同

不同点:

1.接口只有方法定义,没有具体的实现,实现接口的类要实现接口的所有方法;抽象类可以有定义与实现;

2.接口与类是实现关系,并且类可以多实现;抽象类与类是继承关系,只能被一个类继承。

3.接口中成员全为public, 抽象类中可以有抽象方法,也可以没有,抽象方法需加abstract

4.接口中无静态方法,抽象类中可以有。

5.接口中不能定义构造器,抽象类中可以。

相同点:

1.都不能被实例化

2.可以将抽象类和接口类型作为引用类型

3.一个类如果实现接口或继承抽象类,必须实现全部抽象方法,否则仍然是个抽象类

原文地址:https://www.cnblogs.com/zhaowei0721/p/14533463.html