java - 在子类中调用方法

时间:2011-02-10 16:08:55

标签: java

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

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

5 个答案:

答案 0 :(得分:2)

没有。超类应该提供适当的方法来适当地访问字段的值,可能执行验证。

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

答案 1 :(得分:0)

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

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

此方法对于子类是可见的,但在外部不可见。它还允许您将余额字段保密。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

public double getBalance() {
    return balance;
}

在子类中,您可以通过调用getBalance

来查看余额

答案 4 :(得分:0)

使用反射。

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