O Java 8 apresenta métodos padrão para fornecer a capacidade de estender interfaces sem a necessidade de modificar implementações existentes.
Gostaria de saber se é possível invocar explicitamente a implementação padrão de um método quando esse método foi substituído ou não está disponível devido a implementações padrão conflitantes em diferentes interfaces.
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 o código acima, como você chamaria A.foo()
de um método da classe B?