¿Por qué la subclase en otro paquete no puede acceder a un método protegido?
Tengo dos clases en dos paquetes diferentes:
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
}
}
Puedo entender por qué no hay error en llamartryMeProtected()
ya queClass2
ve este método como hereda deClass1
.
Pero ¿por qué no es posible que un objeto deClass2
para acceder a este método en un objeto deClass1
utilizandoc.tryMeProtected();
?