Формулировка вопроса: Почему из класса Y1 нет доступа к методу abc из X1? Ведь access modefire protected - позволяет видеть методы в sub классах? Почему тогда мне нужно сделать метод abc в классе X1 public?
Вот класс X1, у него метод abc с access modefire - protected.
package Course.p1;
public class X1 {
protected void abc() {
System.out.println("X");
}
}
Вот класс Y1. Sub class X1. У него метод abc override`n. Комментарием ниже, отметил где проблема.
package Course.p2;
import Course.p1.X1;
public class Y1 extends X1 {
@Override
public void abc() {
System.out.println("Y");
}
public void def() {
Y1 y = new Y1();
y.abc();
}
public void ghi() { // Вот тут нет доступа
X1 x = new Y1();
x.abc();
}
public static void main(String[] args) {
Y1 a = new Y1();
a.abc();
a.def();
a.ghi();
}
}