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调用则不可
本文主要介绍了Java中protected修饰符的访问规则。protected修饰符在同一包内可访问,不同包时,子类实例访问受方法是否重写等因素影响。如A包基类的protected方法,A包内类及子类可访问,B包子类实例访问情况因方法重写与否而不同。
4417

被折叠的 条评论
为什么被折叠?



