欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于protected修饰符的问题

程序员文章站 2022-07-15 07:58:40
...

protected修饰符只会在同一个包内才可以访问
加入同时有A包和B包
在A包内有基类father,protected方法

protected void speak()
{
    System.out.println("大家好");
}

那么在A包内的类及A的子类都可以访问
如果B包内有一个类son继承了father类

此时如果son类没有重写speak类
那么在B包内的son类的实例还是无法访问speak方法
但是在A包内的son的实例们可以访问speak方法

如果son类重写了speak方法
此时如果在son类还是protected修饰符
那么在A包内如果

son s=new son();

还是无法访问speak方法,因为此时speak方法在B包,不同包无法访问。
但是,如果

father s=new son();

此时就可以调用son重写的speak方法

在B包中同理
如果以son声明可以调用,以father调用则不可