Почему подкласс в другом пакете не может получить доступ к защищенному методу?
У меня есть два класса в двух разных пакетах:
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();
?