抽象类和接口的区别:(面试题)
A:成员区别
抽象类:
成员变量:可以变量,也可以常量
构造方法:有。
成员方法:可以抽象,也可以非抽象
接口:
成员变量:只可以常量
成员方法:只可以抽象
B:关系区别
类与类
继承关系,可以单继承,也可以多层继承
类与接口
实现关系,可以单实现,也可以多实现
接口与接口
继承关系,可以单继承,也可以多继承
C:设计理念区别
抽象类
被继承体现的是:"is a"的关系。抽象类中定义的是该继承体系的共性功能。("is a" = 什么是什么)
例:狗是动物
接口:
被实现体现的是:"like a"的关系。接口中定义的是该继承体系的扩展功能。("like a" = 什么象什么。它本身并不具备,但是随着什么什么发展添加了新东西,这叫接口[相当与电脑上的usb接口,只要按照接口来,就能连接])
Java is-a、has-a和like-a、组合、聚合和继承 两组概念的区别