钻石问题 - 例子

钻石问题是面向对象编程中常见的问题,同时使用 multiple-inheritance

考虑 class C 继承自 class Aclass B 的情况。假设 class Aclass B 都有一个名为 foo() 的方法。

然后,当我们调用方法 foo() 时,编译器无法识别我们尝试使用的确切方法

  • foo() 来自 class A
  • 来自 tihuan 的 foo()

这基本上被称为钻石问题。这个问题有一些变种。为避免这种情况,有多种方法。 Java 不允许多重继承。因此避免了问题。但是 C++允许多重继承,因此必须小心使用多重继承。