Википедия по проблеме алмазов:
"... проблема с алмазом - это двусмысленность, возникающая, когда два класса B и C наследуют от A, а класс D наследуется как от B, так и от C. Если метод в D вызывает метод, определенный в (и не переопределить метод), а B и C переопределили этот метод по-разному, затем из какого класса он наследует: B или C?"
Итак, алмаз выглядит так:
A
/ \
B C
\ /
D
Мой вопрос: что произойдет, если такого класса нет, но снова B и C объявляют тот же метод, скажем, foo(). Разве это не проблема? Почему это называется проблемой алмазов?
Пример:
class B {
public void foo() {...}
}
class C {
public void foo() {...}
}
class D extends B, C {
}
new D().foo();