小编典典

受保护成员的范围

java

我为SCJP做准备,我也知道受保护成员的作用域在包中以及在其他包中(在某些情况下,例如只有继承才可能)。

例如:我有三个类作为Parentclass Childclass Friendclass

package x.parent;

 class Parentclass{
 protected int x=10;
  ...............
  }

 package x.child;

 class Childlass extends Parentclass{
  super.x=20;
  ...............
}

 package x.child;

 import x.parent.Parentclass;

 class Friendclass{
 Parentclass pc = new Parentclass();
 pc.x=30;
  ...............
}

这背后的原因是什么,在Friendclass中,成员x将不接受为其分配值,而对于Childclass而言,它充当私有成员。


阅读 231

收藏
2020-11-26

共1个答案

小编典典

您甚至无法访问Parentclass.xChildclass因为x具有默认可见性(不受保护)。参见http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

编辑:

x.child.Friendclass不在同一个软件包x.parent.Parentclass
x.child.Friendclass 不继承x.parent.Parentclass

如TotalFrickinRockstarFromMars的摘要状态和Java访问控制文档中所述,这意味着Friendclass不允许访问该字段x

2020-11-26