Поскольку C
наследует A
, C
может напрямую использовать переменную protected
в A
, как показано ниже
public class C extends A{
public void go(){
System.out.println(protectedInt);
}
}
. В соответствии с вашим кодом вы создаете экземпляр из A
и доступа к protected
переменной через этот экземпляр , который нарушает правило java. Защищенная переменная не видна вне пакета