我有一个名为 的抽象类myClass
,该类有一个名为 的私有数据字段x
。我有一个公共getX
方法和一个抽象setX
方法。
我有一个名为mySubclass
extends的子类myClass
。我正在尝试创建一个具体的setX
方法,但是代码:
public void setX() {
x = 24.99;
}
给我一个错误,因为x
是私人的。我应该将数据字段设置x
为受保护或公开,还是有办法保持x
私密?
我有一个名为 的抽象类myClass
,该类有一个名为 的私有数据字段x
。我有一个公共getX
方法和一个抽象setX
方法。
我有一个名为mySubclass
extends的子类myClass
。我正在尝试创建一个具体的setX
方法,但是代码:
public void setX() {
x = 24.99;
}
给我一个错误,因为x
是私人的。我应该将数据字段设置x
为受保护或公开,还是有办法保持x
私密?
您不能从子类设置超类的私有字段。在这种情况下,使您x
受到保护。
具有 private 访问修饰符的变量将其可见性限制在该特定类中。尽管您的 setter 方法已被公共覆盖,但无法从另一个类 (mySubClass) 访问 x。被覆盖的方法在 mySubClass 中,并且 x 在 mySubClass 中不可见。
来自 Javadocs:The private modifier specifies that the member can only be accessed in its own class.
因此,无论如何,您都无法访问 IT'S 类之外的私有变量。