首页 > 解决方案 > 子类无法将受保护的数据成员(方法)访问到同一包中

问题描述

我遇到了与受保护的访问修饰符有关的问题。

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 中?并且受保护的访问修饰符可以在同一个包中访问,那么为什么会发生这个错误?

标签: javapackageprotectedaccess-modifiers

解决方案


推荐阅读