接口设计的目的,是对类的行为进行约束,也就是提供一种机制,可以强烈要求不同的类具有相同的行为。他只约束了行为的有无,但不对如何实现进行限制。
而抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为,且其中一部分行为的实现方法一致时,可以让这些类都派生于一个抽象类。
抽象类是对类本质的抽象,表达的是is a的关系,BMW is a car.抽象类包含并实现子类的通用特征,将子类存在差异化的特征进行抽象,交由子类去实现。
接口是对行为的抽象,表达的是like a的关系。bird like a aircraft。接口的核心是定义行为
原文:https://www.cnblogs.com/liuzhidao/p/14787432.html