Llamar al método predeterminado en la interfaz cuando hay un conflicto con el método privado

Considere debajo de la jerarquía de clases.

class ClassA {
    private void hello() {
        System.out.println("Hello from A");
    }
}

interface Myinterface {
    default void hello() {
        System.out.println("Hello from Interface");
    }
}

class ClassB extends ClassA implements Myinterface {

}

public class Test {
    public static void main(String[] args) {
        ClassB b = new ClassB();
        b.hello();
    }
}

Ejecutar el programa dará el siguiente error:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.testing.ClassA.hello()V from class com.testing.Test
at com.testing.Test.main(Test.java:23)
Todo esto se debe a que marqué ClassA.hello como privado.Si marco ClassA.hello como protegido o elimino el modificador de visibilidad (es decir, lo convierte en el alcance predeterminado), entonces muestra un error del compilador como:The inherited method ClassA.hello() cannot hide the public abstract method in Myinterface

Sin embargo, según la excepción stacktrace anterior,Me sale un tiempo de ejecución IllegalAccessError.

No pude entender por qué esto no se detecta en el momento de la compilación. Alguna pista ?

Respuestas a la pregunta(1)

Su respuesta a la pregunta