抽象类和接口的区别:
A:成员的区别
抽象类:
成员变量:可以是变量,也可以是常量。
构造方法:有构造方法,用于子类实例化使用。
成员方法:可以是抽象的,也可以是非抽象的。
接口:
成员变量:只能是常量。
默认修饰符:public static final
成员方法:只能是抽象的。
默认修饰符:public abstract
推荐:默认修饰符请自己永远手动给出。
B:类和接口的关系区别
类与类:
继承关系,只能单继承。可以多层继承。
类与接口:
实现关系,可以单实现,也可以多实现。
类还可以在继承一个类的同时实现多个接口。
接口与接口:
继承关系,可以单继承,也可以多继承。
C:体现的理念不同
抽象类里面定义的都是一个继承体系中的共性内容。
抽象类被继承:is a关系。xx是yy的一种。
接口里面定义的是一个体系的扩展内容。
接口被实现:like a关系。xx像yy的一种。
d:抽象类的成员修饰符可以自定义。
接口中的成员修饰符是固定的。全都是public的。
|