如何使用抽象方法设置私有数据字段?

时间:2016-05-30 05:07:04

标签: java private abstraction datafield

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

我有一个名为mySubclass的子类,它扩展了myClass。我正在尝试创建一个具体的setX方法,但代码:

public void setX() {
  x = 24.99;
}

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

所以无论如何,你都无法访问IT类之外的私有变量。

答案 2 :(得分:0)

带有私有访问修饰符的变量会限制其对该特定类的可见性。尽管您的setter方法被重写为public,但是无法从另一个类(mySubClass)访问x。重写方法在mySubClass中,x在mySubClass中不可见。

相关问题