Этот вопрос может показаться странным для любителей Java, но если вы попытаетесь объяснить это, будет здорово.
В эти дни я проясняю некоторые из самых основных концепций Java. Итак, я перехожу к теме Наследование и интерфейс Java.
Читая это, я обнаружил, что Java не поддерживает множественное наследование, а также понял, что я не могу понять, почему везде обсуждается проблема с фигурой бриллианта (по крайней мере, 4 класса для создания бриллианта), чтобы объяснить это поведение, не можем ли мы понять эту проблему, используя только 3 класса.
Скажем, у меня есть класс A и класс B, эти два класса разные (они не являются дочерними классами общего класса), но у них есть один общий метод, и они выглядят так:
class A {
void add(int a, int b) {
}
}
class B {
void add(int a, int b) {
}
}
Хорошо, теперь скажите, поддерживает ли Java множественное наследование и есть ли один класс, который является подклассом A и B, например: -
class C extends A,B{ //If this was possible
@Override
void add(int a, int b) {
// TODO Auto-generated method stub
super.add(a, b); //Which version of this, from A or B ?
}
}
тогда компилятор не сможет найти, какой метод вызывать из A или B, и поэтому Java не поддерживает множественное наследование. Так есть ли что-то неправильное в этой концепции?
Когда я прочитал об этой теме, я смог понять проблему Diamond, но я не могу понять, почему люди не приводят пример с тремя классами (если это действительно так, потому что мы использовали только 3 класса для демонстрации проблемы, поэтому ее легко понять). понять, сравнив это с проблемой бриллианта.)
Дайте мне знать, не подходит ли этот пример для объяснения проблемы или его также можно использовать для понимания проблемы.
Редактировать: я получил здесь один близкий голос, заявив, что вопрос не ясен. Вот главный вопрос: -
Могу ли я понять, почему «Java не поддерживает множественное наследование» только с 3 классами, как описано выше, или мне нужно иметь 4 класса (структура Diamond), чтобы понять проблему.