接口和抽象类的区别
抽象类是继承体系中的最共性内容,是我的一种(is-a);接口是继承体系中的额外功能(like-a)。
相同点:
都位于继承的顶端,用于被其他类实现或继承;
都不能直接实例化对象;
都包含抽象方法,其子类都必须重写这些抽象方法。
区别:
抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码的重用行;接口只能包含抽象方法;
一个类只能继承一个直接父类(可能是抽象类),缺可以实现多个接口(接口弥补了java的单继承);
抽象类是继承体系中的共性内容,接口是继承体系中的扩展功能。
成员区别:
抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法。
接口:抽象方法。
关系区别:
类与类:继承,单继承。
类与接口:实现,可以单实现,也可以多实现。
接口与接口:继承,单继承,多继承。
设计理念区别:
抽象类:对类抽象,包括属性、行为。
接口:对行为抽象,主要是行为。

浙公网安备 33010602011771号