Entendiendo el modificador protegido de java

Tengo una clase llamada A en package1 y otra clase llamada C en package2. La clase C extiende la clase A.

A tiene una variable de instancia que se declara así:

protected int protectedInt = 1;

Aquí está el código para la clase A

package package1;

public class A {

    public int publicInt = 1;
    private int privateInt = 1;
    int defaultInt = 1;
    protected int protectedInt = 1;

}

Y aquí está el código para la clase C:

package package2;
import package1.A;

public class C extends A{

    public void go(){
        //remember the import statement
        A a = new A();
        System.out.println(a.publicInt);
        System.out.println(a.protectedInt);

    }
}

Eclipse subraya la última línea en C.go () y dice que "A.protectedInt" no es visible. Parece que esto entra en conflicto con la definición de la palabra clave "protegida", dada en la documentación de Oracle.

El modificador protegido especifica que solo se puede acceder al miembro dentro de su propio paquete (como con el paquete privado) y, además, mediante una subclase de su clase en otro paquete.

¿Que está pasando aqui?

Respuestas a la pregunta(6)

Su respuesta a la pregunta