Método de interfaz predeterminado para superclase abstracta
Digamos que tengo la siguiente estructura:
abstract class A {
abstract boolean foo();
}
interface B {
default boolean foo() { return doBlah(); }
}
class C extends A implements B {
//function foo
}
Java ahora se quejará de esa claseC
debe implementar el método abstracto foo deA
. Puedo solucionar este problema relativamente fácil redefiniendo la función enC
y simplemente llamandoB.super.foo();
.
Sin embargo, no entiendo por qué la función predeterminada de la interfazB
no cumple este requisito por sí solo, y me gustaría tener una mejor comprensión de la mecánica subyacente de Java.