1

我有一个名为 的抽象类myClass,该类有一个名为 的私有数据字段x。我有一个公共getX方法和一个抽象setX方法。

我有一个名为mySubclassextends的子类myClass。我正在尝试创建一个具体的setX方法,但是代码:

public void setX() {
  x = 24.99;
}

给我一个错误,因为x是私人的。我应该将数据字段设置x为受保护或公开,还是有办法保持x私密?

4

3 回答 3

5

您不能从子类设置超类的私有字段。在这种情况下,使您x受到保护。

于 2016-05-30T05:09:16.260 回答
0

具有 private 访问修饰符的变量将其可见性限制在该特定类中。尽管您的 setter 方法已被公共覆盖,但无法从另一个类 (mySubClass) 访问 x。被覆盖的方法在 mySubClass 中,并且 x 在 mySubClass 中不可见。

于 2016-05-30T05:45:59.147 回答
0

来自 Javadocs:The private modifier specifies that the member can only be accessed in its own class.

因此,无论如何,您都无法访问 IT'S 类之外的私有变量。

于 2016-05-30T05:29:26.057 回答