天天看点

面向对象(抽象类与接口的区别)

抽象类的定义:

成员属性:可以是变量,也可以是常量
成员方法:可以抽象,也可以非抽象(比如:构造方法是一定会有的)

接口类的定义:

成员属性:只能是常量(public static final)
成员方法:只能是抽象(接口没有构造方法,像太监没有小JJ)

多态的区别:

类与类:
继承,单一继承(亲爹只有一个)
类与接口:
实现,单一、多重实现(可以认多个干爹)
接口与接口:
继承,单一、多重继承(可以认多个干爹)

设计理念区别:

抽象类被继承体现的是:“is a”的关系。抽象类中定义的是该继承体系的共性功能。(例如亲爹:直属血缘关系)
接口被实现体现的是:“like a”的关系。接口中定义的是该继承体系的扩展功能。(例如干爹:认契、过继关系)