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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta