Назад к вопросам
Junior — Middle
73
Можно ли реализовать в одном классе сразу два интерфейса, в каждом из которых есть методы с реализацией по умолчанию?
Ответ от нейросети
sobes.tech AI
Да, в Java класс может реализовывать сразу несколько интерфейсов, даже если в этих интерфейсах есть методы с реализацией по умолчанию (default methods). Однако, если два интерфейса содержат методы с одинаковой сигнатурой, то класс обязан переопределить этот метод и явно указать, какую реализацию использовать или предоставить свою.
Пример:
interface A {
default void hello() {
System.out.println("Hello from A");
}
}
interface B {
default void hello() {
System.out.println("Hello from B");
}
}
class C implements A, B {
@Override
public void hello() {
// Явно выбираем реализацию или пишем свою
A.super.hello();
// или B.super.hello();
}
}
Таким образом, конфликт методов с реализацией по умолчанию решается переопределением в классе.