我遇到与受保护的访问修饰符有关的问题。
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中也无法访问?而且受保护的访问修饰符可在同一软件包中访问,那么为什么会发生此错误?