我有一个名为myClass
的抽象类,该类有一个名为x
的私有数据字段。我有一个公共getX
方法和一个抽象的setX
方法。
我有一个名为mySubclass
的子类,它扩展了myClass
。我正在尝试创建一个具体的setX
方法,但代码:
public void setX() {
x = 24.99;
}
给我一个错误,因为x
是私有的。我应该将x
数据字段设置为受保护还是公开,还是有办法让x
保密?
答案 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中不可见。