如果我有一个包含子类的对象的数组,是否可以通过调用该数组来访问子类中的方法?
这是银行类中的一种方法,我想设置检查:
public void deposit() throws IOException {
BufferedReader br;
String entered_amount;
System.out.print("How much would you like to deposit? :");
br = new BufferedReader(new InputStreamReader(System.in));
entered_amount = br.readLine();
double amount = Double.valueOf(entered_amount).doubleValue();
balance = balance + amount;
System.out.println("Your balance is: " + getBalance());
这是我的Checking课:
public class Checking extends Bankaccount {
private double balance;
public Checking() {
}
public Checking(double balance) {
this.balance = balance;
}
/**
* @return the balance
*/
public double getBalance() {
return balance;
}
/**
* @param balance the balance to set
*/
public void setBalance(double balance) {
this.balance = balance;
}
}
在主类中调用
baArray[0]
时,是否有一种方法可以使存款设置支票类中的余额值?我这样做的原因是因为我正在将对象数组写到文件中,并在程序启动时重新读取它们。我需要能够存储3套支票和储蓄。我的存款方法将是我尝试编辑以使用继承设置支票余额的方法。
最佳答案
添加到您的Banking
类:
public abstract setBalance(double balance);
如果除了
subclasses
类对Banking
没有意义的Checking
之外,还具有setBalance
的Savings
,则可以实现该方法并简单地引发异常。 (虽然setBalance
类也具有Checking
方法似乎很有意义。)或者,您可以将
setBalance
的Banking
方法上移至超类Checking
,然后Savings
和setBalance
都将继承Banking
方法。如果您需要覆盖它们,可以没有问题。编辑:根据对此答案的评论,现在对我来说更清楚了您要完成的工作。
如果您打算有一个
Bank
对象数组,并且每个对象都有一个唯一的帐号,并且对于每个Checking
帐户,都有一个Savings
帐户和一个Checking
帐户,那么从逻辑上讲,听起来对于Savings
和private
是只能通过Banking
类访问的Banking
类更有意义。因此,当帐户持有人去银行时,他们开设一个
Checking
帐户。也许默认情况下,它带有1个Savings
帐户和1个Banking
帐户。这些将是您的Banking
类中的类变量:private Checking checking;
private Savings savings;
现在,您的
Checking
类需要公共方法来访问支票帐户和储蓄帐户。假设您的
Savings
和getBalance
类都具有setBalance
和Banking
。现在,您的setter
类将为每种类型的帐户都需要一个getter
和Banking
,并且只调用适当的方法。例如,在您的类中:
public void setCheckingBalance(double balance)
{
checking.setBalance(balance);
}
public double getCheckingBalance()
{
return checking.getBalance();
}
然后在您的主要方法中,将通过以下方式使用这些方法:
baArr[0].setCheckingBalance(100.00);