[英]can I call subclasses on an array of a superclass?
如果我有一個包含子類的對象的數組,是否可以通過調用該數組來訪問子類中的方法?
這是銀行類中的一種方法,我想設置檢查:
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);
如果除了setBalance
方法沒有意義的Checking
類之外,還有Banking
subclasses
,則可以實現該方法,並使其簡單地引發異常。 (對於Savings
類,雖然也有setBalance
方法似乎setBalance
。)
或者,您可以將Checking
的setBalance
方法移至超類Banking
,然后Checking
和Savings
都將繼承setBalance
方法。 如果您需要覆蓋它們,可以沒有問題。
編輯:根據對此答案的評論,現在對我來說更清楚了您要完成的工作。
如果您打算有一組Banking
對象,並且每個對象都有一個唯一的帳號,並且對於每個Bank
帳戶,都有一個Checking
帳戶和一個Savings
帳戶,那么從邏輯上講,聽起來對於Checking
來說更有意義和Savings
是只能通過Banking
類訪問的private
類。
因此,當帳戶持有人去銀行時,他們會開設一個Banking
帳戶。 也許默認情況下,它帶有1個Checking
帳戶和1個Savings
帳戶。 這些將是您的Banking
類中的類變量:
private Checking checking;
private Savings savings;
現在,您的Banking
類需要公共方法來訪問支票帳戶和儲蓄帳戶。
假設您的Checking
and 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.