abstract class 和 Interface

abstract class与interface区别?

大致总结:

  定义:声名方法而不去实现它的类叫做抽象类(abstract class);

    接口(interface)是抽象类的变体。

  区别

  1)、抽象类的方法可以是抽象方法,还可以包含具体数据和具体方法。接口中的方法不能实现,必须由继承的类来实现;接口只能定义static final成员变量。

  2)、抽象类和接口都可以被继承,但类只能单一继承,而接口可以继承多个。

  3)、通常接口用于平时常用功能,便于日后维护添加和删除功能;而抽象类充当公共方法的角色,不适用于日后重新对里面的代码进行修改。

  4)、当一个类中包含一个或多个抽象方法的时候必须声明为抽象类。