Почему подкласс в другом пакете не может получить доступ к защищенному методу?

У меня есть два класса в двух разных пакетах:

package package1;

public class Class1 {
    public void tryMePublic() {
    }

    protected void tryMeProtected() {
    }
}


package package2;

import package1.Class1;

public class Class2 extends Class1 {
    doNow() {
        Class1 c = new Class1();
        c.tryMeProtected(); // ERROR: tryMeProtected() has protected access in Class1
        tryMeProtected();  // No error
    }    
}

Я могу понять, почему нет ошибки в вызовеtryMeProtected() посколькуClass2 видит этот метод, как он наследует отClass1.

Но почему это невозможно для объектаClass2 чтобы получить доступ к этому методу на объектеClass1 с помощьюc.tryMeProtected(); ?

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

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