Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么C#doen';不支持多重继承_C#_Oop_Multiple Inheritance - Fatal编程技术网

为什么C#doen';不支持多重继承

为什么C#doen';不支持多重继承,c#,oop,multiple-inheritance,C#,Oop,Multiple Inheritance,可能重复: 我的一个朋友问了我这个问题 i、 e.为什么C#不支持多重继承使用接口更灵活,消除了多重继承的模糊性 更多细节,.多重继承使语言及其实现复杂化。我怀疑设计人员认为这些收益不值得付出努力。C#,就像Java支持一种通过允许一个类实现多个接口来处理多重继承的方法一样。它不是完全的多重继承,但是它可以完成您想要完成的事情。有很多这样的问题:但是为什么它应该支持它们呢?与语言复杂性的增加相比,多重继承的净价值非常低。由于接口是多重继承的子集,我不确定你如何得出它们更灵活的结论。它如何能更灵

可能重复:

我的一个朋友问了我这个问题
i、 e.为什么C#不支持多重继承

使用接口更灵活,消除了多重继承的模糊性


更多细节,.

多重继承使语言及其实现复杂化。我怀疑设计人员认为这些收益不值得付出努力。

C#,就像Java支持一种通过允许一个类实现多个接口来处理多重继承的方法一样。它不是完全的多重继承,但是它可以完成您想要完成的事情。

有很多这样的问题:但是为什么它应该支持它们呢?与语言复杂性的增加相比,多重继承的净价值非常低。由于接口是多重继承的子集,我不确定你如何得出它们更灵活的结论。它如何能更灵活?从类继承与从接口继承完全不同,接口只定义了一个契约,没有实际的功能/代码重用。有趣的是,有一个版本的Eiffel for.Net使用CLR接口和委托来实现Eiffel的版本(如果多次继承)。