Этот вопрос может показаться странным для людей Java, но если вы попытаетесь объяснить это, это будет здорово.
В эти дни я очищаю некоторые из основных понятий Java. Итак, я прихожу на тему "Наследование и интерфейс Java".
Прочитав это, я обнаружил, что Java не поддерживает множественное наследование и также понимает, что я не могу понять, почему всюду проблема с алмазной фигурой (как минимум 4 класса для создания алмаза) обсуждается, чтобы объяснить это поведение, Can Мы не понимаем эту проблему, используя только 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 класса для демонстрации проблемы, так что его легко понять, сравнивая его с проблемой Diamond.)
Сообщите мне, не подходит ли этот пример для объяснения проблемы, или это также может быть передано для понимания проблемы.
Edit: Я получил здесь одно близкое голосование, в котором говорится, что этот вопрос не ясен. Вот главный вопрос: -
Могу ли я понять, почему "Java не поддерживает множественное наследование" с 3 классами, как описано выше, или мне нужно иметь 4 класса (структура Diamond), чтобы понять проблему.