java基础之抽象类和接口的区别
抽象类和接口的区别
A:成员区别
抽象类:
成员变量:可以是变量,也可以是常量
构造方法:有
成员方法:可以是抽象方法,也可以是非抽象方法
接口:
成员变量:只能是静态常量(不写修饰符,默认是 static final)
构造方法:无
成员方法:只能是抽象方法
B:关系区别
类与类:继承关系,只能单继承,可以多层继承
类与接口:实现关系,可以多实现
接口与接口:继承关系,可以多继承
C:设计理念区别
抽象类 被继承体现为 "is a" 表明子类是抽象父类这一类事物的一种
接口 被实现体现为 "like a" 表明接口是类的扩展功能
举例:
狗 动物 狗是动物
狗 跳高 狗会跳高