java – 在子类中调用方法

嘿那里,我正试图在子类中调用一个方法,savingsaccount。 当我调用这个方法时,它涉及一个名为balance的称为account的超类中的字段。 当我尝试在该方法中涉及此字段时,它表示该字段是私有的,无法访问。 有没有办法保持场地私密? 我们不应该更改访问类型。

亲切的问候和非常感谢任何帮助

不可以。超类应该提供适当的方法来适当地访问字段的值,可能执行validation。

将字段设置为私有的重点是阻止其他类直接访问它 – 而是必须通过您公开的方法。

在超类中添加受保护的getter方法以返回余额值,例如:

protected double getBalance() { return this.balance; } 

此方法对于子类是可见的,但在外部不可见。 它还允许您将平衡字段保持为私有。

如果它是私人的,你无法得到它,就是这样。 超类的作者有责任使他们的课程对扩展开放。 如果他们选择不允许这种扩展,那么就没有什么可做的了。

现在检查,他们是否提供了访问方法,或者以其他方式预测您是否需要扩展? 如果您可以与作者交谈,请询问他们是否考虑过这种需求。

private表示该变量对该类是私有的。 protected表示子类可以访问它,public表示任何人都可以看到它。 如果您无法更改访问类型,那么您应该在超类中提供一个访问器方法:

 public double getBalance() { return balance; } 

在子类中,您可以通过调用getBalance来查看余额

用reflection。

嘿,我只是按原样回答这个问题。