2012-06-14 162 views
1

可能重複:
Why is Multiple Inheritance not allowed in Java or C#?多重繼承的支持

我想知道爲什麼C#不支持多重繼承? 我知道這是可能使用的接口,但什麼是編譯器不支持多重繼承的原因是什麼?

+0

可能重複http://stackoverflow.com/questions/191691/should-c-include-multiple-inheritance http://stackoverflow.com/questions/2865302/why-c-sharp-doent-support-multiple-繼承 –

+0

檢查: [此處輸入鏈接的描述] [1] [1]:http://stackoverflow.com/questions/995255/why-is-multiple-inheritance-not-允許功能於Java的或-C – Sunny

回答

0

它是由MS太複雜,拒絕了它不值得你應該管理框架的複雜性,以管理OOP設計關係,獲得了好處。

0

C#.net CLR還沒有實現MI因爲他們還沒有得出結論如何將C#,VB.net和其他lanaguages之間的互操作呢,不是因爲「它將使來源更爲複雜的」

MI真正適合的地方其實很小。在很多情況下,多接口繼承可以完成工作。在其他情況下,您可能能夠使用封裝和委派。如果我們添加一個稍微不同的結構,如混入,會實際上是更強大?

實現多繼承注入了大量的複雜進入實施。這種複雜性影響鑄造,佈局,調度,現場訪問,系列化,身份比較,可驗證性,反射,泛型和可能很多其他地方。