钻石问题 - 例子
钻石问题是面向对象编程中常见的问题,同时使用 multiple-inheritance
。
考虑 class C
继承自 class A
和 class B
的情况。假设 class A
和 class B
都有一个名为 foo()
的方法。
然后,当我们调用方法 foo()
时,编译器无法识别我们尝试使用的确切方法
foo()
来自class A
- 来自 tihuan 的
foo()
这基本上被称为钻石问题。这个问题有一些变种。为避免这种情况,有多种方法。 Java 不允许多重继承。因此避免了问题。但是 C++允许多重继承,因此必须小心使用多重继承。