Встречается на собеседованиях • сегодня
Можно ли имплементировать два интерфейса с методами с одинаковой сигнатурой в одном классе
Да, можно, если методы имеют одинаковую сигнатуру и возвращаемый тип. Java разрешает это, так как реализация будет общей для обоих интерфейсов. Если же возвращаемые типы разные, возникнет ошибка компиляции.
Пример:
java
interface A {
void doSomething();
}
interface B {
void doSomething();
}
class C implements A, B {
@Override
public void doSomething() {
System.out.println("Common implementation");
}
}
text
Если методы default в интерфейсах конфликтуют, нужно явно переопределить метод в классе:
```java
interface A {
default void doSomething() {
System.out.println("A");
}
}
interface B {
default void doSomething() {
System.out.println("B");
}
}
class C implements A, B {
@Override
public void doSomething() {
A.super.doSomething(); // Явный вызов реализации из A
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы