2010-02-18 72 views
0

任何人都可以解釋我關於多繼承

爲什麼c#不支持多繼承,因爲C++支持多繼承?怎麼可能? C++如何支持?

+0

因爲多重繼承是骯髒的:http://en.wikipedia.org/wiki/Multiple_inheritance#Criticisms – Jay 2010-02-18 04:12:41

+2

你可以解釋一下你在C#中尋找多重繼承的特性,也許我們可以推薦一些其他的東西來實現你的目標是? – Dan 2010-02-18 04:13:37

+5

十個問題,零接受?當你得到一個問題的最佳答案時,選擇那個答案作爲你接受的答案會很有禮貌。對於花時間閱讀和回覆您的問題的人來說,這是一種很好的方式。 – 2010-02-18 04:33:22

回答

3

一,小錯誤修正:C#確實支持多個接口的繼承。它不支持多個執行繼承。

不支持MI的兩大原因是:

  • 機會是好的,你可以做你想做的與多接口繼承呢。

  • 它增加了很多複雜的編譯器實現。

IMO,在許多情況下,語言中多重繼承的可用性導致該功能經常被濫用。單一的繼承已經不必要地被嵌入到許多類層次中,當組合的東西也會如此。

+0

「繼承被濫用」。我默認哪些C#類將被'密封',你必須通過'base'明確地啓用繼承。 – 2010-02-18 04:29:26