В Java 8 представлены методы по умолчанию для предоставления возможность расширения интерфейсов без необходимости изменения существующих реализаций.
Интересно, можно ли явно вызвать реализацию метода по умолчанию, когда этот метод был переопределен или недоступен из-за конфликтующих реализаций по умолчанию в разных интерфейсах.
interface A {
default void foo() {
System.out.println("A.foo");
}
}
class B implements A {
@Override
public void foo() {
System.out.println("B.foo");
}
public void afoo() {
// how to invoke A.foo() here?
}
}
Учитывая приведенный выше код, как бы вы могли вызвать A.foo()
из метода класса B?