[英]Can't “access” variable from super,super class
您好,我在覆盖存款方法时遇到问题。 我有一个BankAccount类(主要类),InterestAccount(扩展BankAccount)和IsaAccount(扩展InterestAccount)。 我无法调用余额来添加IsaAccount类的deposit方法中提到的金额。 我尝试了多种使用getBalance,super(balance),super.getBalance等的方法。没有任何效果。 这让我筋疲力尽...我浏览了许多类似的主题,但是找不到解决此特定问题的方法。 我必须制定一种存款方法,以便可以将钱存入IsaAccount对象。
public class BankAccount {
private int balance;
public BankAccount() {
balance = 0;
}
......................
public class InterestAccount extends BankAccount {
private int interestRate;
private int minimumBalance;
public InterestAccount() {
super();
interestRate = 0;
minimumBalance = 100;
}
......................
public class IsaAccount extends InterestAccount {
private int depositRemaining;
public IsaAccount() {
super();
depositRemaining = 0;
}
public IsaAccount(int balance, int interestRate, int minimumBalance, int depositRemaining) {
super(balance, interestRate, minimumBalance);
this.depositRemaining = depositRemaining;
}
@Override
public void deposit(int amount) {
if (amount <= depositRemaining)
<HERE I NEED TO CALL BALANCE(not sure whether I have to use get
methods or what) e.g balance = balance + amount; >
}
......................
更新BankAccount以进行设置并获得类似
class BankAccount {
private int balance;
public BankAccount() {
balance = 0;
}
public int getBalance() {
return this.balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
然后使用此方法(自然,因为您已经使用@Override
所以我假设它也确实存在于父类中,然后删除@Override
@Override
public void deposit(int amount) {
if (amount <= depositRemaining){
setBalance(getBalance() + amount);
}
}
问题在于您尝试从BankAccount访问的余额变量是私有的。 当一个类扩展另一个类时,它将接收私有方法和变量,但无法访问它们。 您可以通过将余额更改为受保护而不是私有来解决此问题。 或者,您可以在BankAccount中设置一个公共方法来设置余额。
protected int balance;
而不是private int balance;
要么
public void setBalance(int balance){ this.balance = balance; } public int getBalance(){ return balance; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.