Java 8 introduce metodi predefiniti per fornire la possibilità di estendere le interfacce senza la necessità di modificare le implementazioni esistenti.
Mi chiedo se sia possibile invocare esplicitamente l'implementazione predefinita di un metodo quando tale metodo è stato sovrascritto o non è disponibile a causa di implementazioni predefinite contrastanti in diverse interfacce.
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?
}
}
Considerando il codice sopra, come chiameresti A.foo()
da un metodo di classe B?