Алмазная проблема

Википедия по проблеме алмазов:

«... проблема алмаза - это неоднозначность, которая возникает, когда два класса B и C наследуют от A, а класс D наследует от B и C. Если метод в D вызывает метод, определенный в A (и не переопределяет метод ), а B и C переопределяют этот метод по-разному, тогда от какого класса он наследуется: B или C? "

Итак, бриллиант выглядит так:

  A
 / \
B   C
 \ /
  D

Мой вопрос заключается в том, что произойдет, если такого класса A нет, но снова B и C объявляют один и тот же метод, скажем, foo (). Разве это не та же проблема? Почему это тогда называется проблемой алмазов?

Пример:

class B {
    public void foo() {...}
}

class C {
    public void foo() {...}
}

class D extends B, C {
}

new D().foo();

Ответы на вопрос(2)

Ваш ответ на вопрос