Override Метод sub- класса не видит ссылку в Super классе

Формулировка вопроса: Почему из класса 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();

    }
}

Ответы (0 шт):