为什么大多数编程语言都不支持多继承?

Sta*_*arx 9 oop inheritance multiple-inheritance

为什么大多数编程语言都不支持多继承?

我真的可以使用这个功能来开发不同的应用程序布局吗?

Odd*_*ing 11

作为开发人员,多重继承在许多情况下都很有用,但它极大地增加了语言的复杂性,这使得编译器开发人员和程序员的工作更加困难.

  • 当两个父类具有相同名称的数据成员或方法时,会出现一个问题.很难解决子类引用的内容.

  • 另一种情况发生在两个父类继承自同一基类,在继承层次结构中形成"菱形"模式时.

  • 需要指定父类的初始化/详细说明的顺序 - 这有时会导致在继承顺序发生变化时行为发生变化 - 这可能会让开发人员感到意外.

  • 某些语言支持对"super"或等效的引用,它引用此对象的基类的属性.在具有多重继承的语言中,这变得难以支持.

  • 有些语言试图提供自动的对象关系模型,因此可以使用常规RDMS使对象持久化.这种映射在最好的时候很难(它被描述为软件开发的"越南战争"),但如果支持多重继承则要困难得多.