2010-02-18 73 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