当前位置:  开发笔记 > 编程语言 > 正文

多重继承批评

如何解决《多重继承批评》经验,为你挑选了1个好方法。

我正在研究多重继承的概念(自从我在愤怒中编写C++以来已经差不多10年了,并且只是在学术上对这个概念感兴趣).我在维基百科上找到了这个参考.

他们列出的对MI的批评是"无法从单个类中明确地继承多次".我对这个陈述感到困惑,并不是百分之百地确定这是指什么.

当然,一个类继承描述了一个类的结构,并且从同一个类继承多次只会重复相同的类契约,所以我看不出它会给批评辩护的好处.显式继承是否会假设类函数和属性的多个实例?

我想了解这个批评所指的是什么,以及为什么启用多重继承的语言隐含无法使用它.



1> Aaron Digull..:

这被称为钻石问题.大多数允许MI的现代语言都有解决方案.

简而言之,你有这个类树:

class A { public int f = 0; };

class B extends A { f = 1; };

class C extends A { f = 2; };

class D extends B, C {};

Df打印什么?如果你把一些值放到Df中,它应该存放在哪里?两个字段B(A).f和C(A).f应该合并为一个还是应该保持分开?如果你在B和C中覆盖A的方法x,Dx()应该做什么?打两个电话?以什么顺序?返回值怎么样?

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有