Встречается на собеседованиях • сегодня

Возможно ли множественное наследование в Java

В Java нет множественного наследования классов из-за проблемы "алмаза смерти" (diamond problem). Однако можно реализовать несколько интерфейсов, которые поддерживают множественное наследование поведения через default-методы.

Пример:

java
interface A {
    default void foo() {
        System.out.println("A");
    }
}

interface B {
    default void foo() {
        System.out.println("B");
    }
}

class C implements A, B {
    // Обязаны переопределить конфликтующий метод
    @Override
    public void foo() {
        A.super.foo(); // Явный вызов реализации из A
    }
}

Класс может наследовать только один родительский класс, но сколько угодно интерфейсов. Для разрешения конфликтов между default-методами нужно явно переопределять метод в классе.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы