如果我有一个包含子类的对象数组,我可以通过调用该数组来访问子类中的方法吗?
这是我的Banking类中的一个方法,我想设置检查:
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());
这是我的检查类(class):
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);
如果除了 Checking
类之外,您还有 Banking
的子类
,而 setBalance
方法无法实现该子类感觉,那么您可以实现该方法并简单地让它抛出异常。 (尽管 Savings
类也有一个 setBalance
方法似乎是有意义的。)
或者,您可以将 Checking
的 setBalance
方法移至父类(super class) Banking
,然后移至 Checking
和 Savings 都将继承 setBalance 方法。如果您需要覆盖它们,可以,没问题。
编辑:根据对此答案的评论,我现在更清楚您要实现的目标。
如果您打算拥有一组 Banking
对象,并且每个对象都有一些唯一的帐号,并且对于每个 Bank
帐户,都有一个 支票
帐户和储蓄
帐户,那么从逻辑上讲,听起来支票
和储蓄
更有意义private
类只能通过 Banking
类访问。
因此,当帐户持有人前往银行时,他们会开设一个银行
帐户。也许默认情况下,它带有 1 个支票
帐户和 1 个储蓄
帐户。这些将是您的 Banking
类中的类变量:
private Checking checking;
private Savings savings;
现在您的 Banking
类需要公共(public)方法来访问支票帐户和储蓄帐户。
假设您的 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);
关于java - 我可以在父类(super class)的数组上调用子类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614492/