java - 子类无法将受保护的数据成员(方法)访问到同一包中
问题描述
我遇到了与受保护的访问修饰符有关的问题。
package pack1;
public class A{
protected void m1(){
System.out.println("Protected method");
}
}
package pack2;
import pack1.A;
class B extends A{
}
class C extends B{
public static void main(String[] args){
B b = new C();
b.m1();// Error: method m1() is protected access modifier in package pack 2
}
}
为什么 B 类的方法无法访问,即使它存在于 B 类退出的同一个包包 2 中?并且受保护的访问修饰符可以在同一个包中访问,那么为什么会发生这个错误?