在知乎上看見個關於接口的見解,頗有道理。

首先java中不存在實際的多重繼承!!!java

 不謹慎的使用多重繼承會致使‘共同祖先’問題,好比class B 和class C均繼承class A, 那麼若是class D 同時繼承class B 和class C,那麼繼承與A中的共有成員就會有兩份,那麼D中的成員id歸屬問題就不明確了。.net

 java中的interface 不能夠被實例化,必須被使用其它的類implement,但這不是繼承。interface 的主要目的不是爲了實現多重繼承,而是爲了規定一系列必須被Implement的方法,在C++中也就是@張啓超 說的純虛類。繼承

 在非要使用多重繼承pattern的狀況下,能夠經過interface模擬多重繼承。而且因爲interface自己沒有數據成員,因此不會出現id的混淆問題。 get


做者:kim vic 連接:https://www.zhihu.com/question/20785872/answer/16209494 來源:知乎 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。io

相關文章
相關標籤/搜索