接口和抽象类

接口和抽象类

接口是比抽象类更加抽象的抽象,接口的本质是契约,抽象类支持了代码复用

普通类:只有具体实现

抽象类:具体实现+规范(抽象方法)

接口:只有规范。好处是约束和实现分离

 

接口和抽象类的区别

  1. 实现接口必须重写接口中的所有方法;继承抽象类可以重写(抽象)方法,也可以继续保持(抽象)。

  2. 抽象类只能单继承;implements可以实现多个接口。

  3. 设计目的:

    接口的设计目的是对类的行为进行约束,也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。

    抽象类的设计目的是代码复用。当不同的类具有某些相同的行为(方法),且其中一部分行为的实现方式一致时,可以让这些类都派生于一个抽象类。在这个抽象类中实现这些行为,避免让所有子类实现相同的行为,这就达到了代码复用的目的。抽象的行为则留给各个子类自己实现(它们的实现方式不同)。因为抽象的行为没有实现,所以抽象类不允许实例化。

posted @ 2021-04-11 15:21  getHeading  阅读(50)  评论(0)    收藏  举报