Понимание защищенного модификатора Java

У меня есть класс с именем A в package1 и другой класс с именем C в package2. Класс C расширяет класс A.

A имеет переменную экземпляра, которая объявлена так:

protected int protectedInt = 1;

Вот код для класса А

package package1;

public class A {

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

}

А вот код для класса 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 подчеркивает последнюю строку в C.go () и говорит:A.protectedInt» не видно Похоже, это противоречит определениюзащищенный» ключевое слово, приведенное в документации оракула.

Защищенный модификатор указывает, что доступ к члену возможен только в его собственном пакете (как в случае с package-private) и, кроме того, подклассом его класса в другом пакете.

Какие'здесь происходит?

Ответы на вопрос(6)

Ваш ответ на вопрос