【发布时间】:2013-11-15 07:23:49
【问题描述】:
我知道 Java 没有任何支持多重继承的能力。举个例子,C类继承了A类和B类的所有属性,那么编译器就会混淆应该调用A和B中定义的哪个方法。所以,C++支持多重继承,而Java不支持。
我知道通过使用接口可以在Java中实现这种多重继承。
我的疑问是,Diamond 问题是什么?如何在 Java 中解决?
例如,考虑多个类,例如 A、B、C、D。B 类和 C 类继承了 A 类的属性,D 类继承了 B 类和 C 类的属性。这称为“钻石问题”。
我们如何在 Java 中解决这个 Diamond 问题?这个 Diamond 问题什么时候可能在编码中准确出现?
我还提到在 C++ 中使用 Virtual 可以实现这种多重继承的概念。而且,Java 的构建和设计都是为了简单!
虚拟在 C++ 中的实际含义是什么?如何在 Java 中使用?是否可以通过Virtual实现多重继承?
我是 Java 初学者,对于这样的问题非常抱歉。但是,我相信这可以从我的错误中吸取教训!
【问题讨论】:
-
不能使用接口实现多重继承。您永远不能从两个不相关的其他类继承实现。
-
@DavidWallace 好吧,你永远无法通过扩展两个类来获得 C++ 风格的多重继承。您所能做的就是实现多个接口。 Java 中没有“钻石”情况 =)
标签: java c++ inheritance