java中protected的用法总结,java中private关键字的作用

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: