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

Как реализовать аналог множественного наследования

В Java нет множественного наследования, но можно использовать интерфейсы с default-методами или композицию.

1. Интерфейсы с 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(); } // Явный выбор реализации
}

text

**2. Композиция (предпочтительнее):**  
```java
class A { void foo() { System.out.println("A"); } }
class B { void bar() { System.out.println("B"); } }

class C {
    private final A a = new A();
    private final B b = new B();
    
    void foo() { a.foo(); }
    void bar() { b.bar(); }
}

Композиция избегает проблем алмаза смерти и делает код гибче.

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

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

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

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