c# - C# 应该有多重继承吗?

标签 c# inheritance multiple-inheritance

<分区>

我遇到过许多反对在 C# 中包含多重继承的论点,其中一些包括(撇开哲学论点):

  • 多重继承过于复杂且常常含糊不清
  • 没有必要,因为接口(interface)提供了类似的东西
  • 在接口(interface)不合适的情况下,组合是一个很好的替代品

我有 C++ 背景,怀念多重继承的强大和优雅。虽然它并不适合所有软件设计,但在某些情况下很难否认它对接口(interface)、组合和类似 OO 技术的实用性。

排除多重继承是否说明开发人员不够聪明,无法明智地使用它们并且无法在出现复杂性时解决它们?

我个人欢迎将多重继承引入 C#(也许是 C##)。


附录:我很想知道来自单一(或程序背景)和多重继承背景的回复。我经常发现没有多重继承经验的开发人员通常会默认多重继承是不必要的论点,仅仅是因为他们没有任何范例经验。

最佳答案

我从来没有错过过,从来没有。是的,它 [MI] 变得复杂了,是的,接口(interface)在很多方面都做着类似的工作——但这​​不是最重要的一点:在一般意义上,大多数时候根本不需要它。在许多情况下,甚至单继承也被过度使用。

关于c# - C# 应该有多重继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191691/

相关文章:

c# - 通过串口从电压表读取数据

c# - INotifyPropertyChanged 的​​不同实现方式有什么区别?

c++ - C++中的多重继承和多态性

python - 用python多重继承类实现的好习惯?

c++ - 关于 C++ 中的多重继承的问题?

c# - 在 C# 中没 Root过的 XmlSerialisation

c# - 如何通过反射调用基类的方法?

c++ - 重写 push_back C++

javascript - ES6 javascript 子类不继承所有变量?

c++ - 类的对象(使用单/多继承)有多少个 vptr?