Почему ругается компилятор (has protected access in ..)
В одном пакете такой код:
package p1;
public class X {
protected void abc (){
System.out.println("x");
}
}
В другом:
package p2;
import p1.*;
public class Y extends X{
public void abc(){
System.out.println("Y");
}
public static void main(String[] args) {
X x = new Y();
x.abc(); // здесь ругается компилятор: abc() has protected access in X
}
}
Но protected должен быть виден в Child классах, и данный метод должен выдавать "Y"