Встречается на собеседованиях • сегодня
Можно ли имплементировать два интерфейса с default методами в одном классе
Да, можно, но если интерфейсы содержат 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
}
}Без переопределения foo() в классе C код не скомпилируется. Также можно полностью переопределить метод или вызвать реализацию из другого интерфейса через B.super.foo().

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