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

Можно ли имплементировать два интерфейса с методами с одинаковой сигнатурой в одном классе

Да, можно, если методы имеют одинаковую сигнатуру и возвращаемый тип. 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
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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