抽象类与接口用法区别

很多刚工作不久的程序猿对接口和抽象类总是经常混用。不能从字面上去理解两者的区别,一个能写实现方法,一个只能写方法声明。如果理解到这个层次,说明还没有领悟OPP的精髓。其实,类继承描述的是is-a的关系,如充电宝继承了蓄电池类;而接口实现描述的是has-a的关系,比如给蓄电池超类实现一个microusb的接口和一个type-c的接口。抽象类反映了一种树形多分支的关系,接口反映了一种可插拔的能力关系。所以这就是很多语言只允许继承一个父类,但允许实现多个接口的原因。抽象工厂模式就是事先定义好一堆接口,而产品通过抽象类派生出不同类别的具体产品,工厂类通过实现不同的接口拥有不同的生产能力。这也体现了依赖倒转的原则,看看原文的说法:高层定义不依赖于低层定义,两者都应该依赖于抽象!

    原文作者:王焱君
    原文地址: https://www.jianshu.com/p/15ce2ab465dc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞