`

接口类与抽象类

 
阅读更多
首先:从表面区别来看,接口是只有方法声明,没有方法体。抽象类有方法体和实现,而且还可以有属性特征。

其次:为什么不能全部用抽象代替接口,因为接口强调的是动作的继承,而不是所有东西都继承,抽象只能是纯粹的继承了。考虑一个问题,如果一只狗和一只候子都有爬树的功能,如果用接口,大家实现爬树就行了,如果用抽象类,那狗继承候的特征还有候尾巴什么的。

再次:接口为什么可以多重实现,因为他只关注动作本身,不关注其他东西。比如爬树,如果继承候的爬树方法,显然狗爬树和候是不一样的。如果你用接口,仅仅是定义了这个动作,具体怎么爬是他们的事情 。但用继承,却可以继承爬树的一些具体细节,运用的情况也要因地制宜了。
所以其实接口是抽象类的特殊情况。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics