接口和抽象类的区别

  抽象类是继承体系中的最共性内容,是我的一种(is-a);接口是继承体系中的额外功能(like-a)。

 

相同点:

  都位于继承的顶端,用于被其他类实现或继承;

  都不能直接实例化对象;

  都包含抽象方法,其子类都必须重写这些抽象方法。

区别:

  抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码的重用行;接口只能包含抽象方法;

  一个类只能继承一个直接父类(可能是抽象类),缺可以实现多个接口(接口弥补了java的单继承);

  抽象类是继承体系中的共性内容,接口是继承体系中的扩展功能。

成员区别:

  抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法。

  接口:抽象方法。

关系区别:

  类与类:继承,单继承。

  类与接口:实现,可以单实现,也可以多实现。

  接口与接口:继承,单继承,多继承。

设计理念区别:

  抽象类:对类抽象,包括属性、行为。

  接口:对行为抽象,主要是行为。

posted @ 2020-10-05 03:11  SimonShixinlong  阅读(127)  评论(0)    收藏  举报