java中protected的用法总结,java中private关键字的作用
我们先来看下面两个例子:
示例1:
//a包里有个动物。
包testa
公共类动物{
受保护的空crowl(字符串c){
system . out . println(c);
}
}(视频教程推荐:java视频)
示例2:
包测试b;
进口testa。动物;
猫类延伸动物
{
}
公开课鼠展动物{
public void crowl(){
this.crowl(《知止》);//没问题,它继承了Animal中受保护的方法——crowl(String)。
Animal ani=新动物();
阿尼.克罗尔(阿尼梅尔娇娇);//错误,动物类型的crowl(String)方法不可见
Cat Cat=new Cat();
cat.crowl(《苗苗》);//错误,动物类型的crowl(String)方法不可见
}
}既然猫和老鼠都继承动物,那么猫在老鼠范围内继承的crowl()方法呢?
回答:
受保护的访问保护规则非常微妙。尽管受保护的域对所有子类都可见。但是有一点很重要,不同包时,子类只能在自己的作用范围内访问自己继承的那个父类protected域,而无法到访问别的子类(同父类的亲兄弟)所继承的protected域和父类对象的protected域ani.crow1()。 。说白了,老鼠只能叫‘志,志’。即使他能看到猫(他可以在自己的范围内创建一个猫对象),他也永远学不会喵。
即cat继承的crowl方法在cat类的范围内可见。但是在鼠的范围内是看不到的,即使鼠和猫是兄弟。
另外,这也是我们在使用clone方法时,不能简单的直接指向对象aObject.clone()的原因。并且需要在ao object . bo object=(bo object)this . bo object . clone()中;
总结:
当B扩展A时,在子类B的范围内,只能调用这个子类B定义的对象的保护方法(这个方法继承自父类A)。不能调用其他类A对象(A本身和从A继承的对象)的受保护方法。
推荐教程:java入门。以上是一个例子,解释java中受保护关键字的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。