Встречается на собеседованиях • сегодня
Как сделать аналог множественного наследования
В 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 A a = new A();
private B b = new B();
void foo() { a.foo(); }
void bar() { b.bar(); }
}Плюсы:
- Избегаем проблем ромбовидного наследования.
- Гибкость в выборе поведения.
Минусы:
- Требуется ручное делегирование вызовов.
- Увеличивается объем кода.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы