Entendendo o modificador protegido de java

Eu tenho uma classe chamada A no pacote1 e outra classe chamada C no pacote2. A classe C estende a classe A.

A tem uma variável de instância que é declarada assim:

protected int protectedInt = 1;

Aqui está o código para a classe A

package package1;

public class A {

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

}

E aqui está o código da classe 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);

    }
}

O Eclipse sublinha a última linha em C.go () e diz que "A.protectedInt" não está visível. Parece que isso entra em conflito com a definição da palavra-chave "protected", fornecida na documentação do oracle.

O modificador protected especifica que o membro só pode ser acessado em seu próprio pacote (como no pacote private) e, além disso, por uma subclasse de sua classe em outro pacote.

Oque esta acontecendo aqui?

questionAnswers(6)

yourAnswerToTheQuestion