我搞砸了繼承和混淆瞭如何做一些不同的事情。以下是我的:瞭解繼承和不同的類
查看Account類並在不同類Bank中編寫一個主要方法以簡要介紹一些Account類的實例。
使用Account類作爲基類,編寫兩個名爲SavingsAccount和CheckingAccount的派生類。 SavingsAccount對象除了Account對象的屬性之外,還應該有一個利息變量和一個可以增加賬戶利息的方法。 CheckingAccount對象除了Account對象的實例變量外,還應該有一個透支限制變量。確保您在派生類中必要時重寫了Account類的方法。
現在創建一個Bank類,其中的一個對象包含一個Account對象數組。數組中的帳戶可以是Account類,SavingsAccount類或CheckingAccount類的實例。創建一些測試帳戶(每種類型的一些)。
在銀行類中編寫更新方法。它遍歷每個帳戶,並通過以下方式進行更新:儲蓄帳戶獲得了興趣(通過您已寫入的方法);如果帳戶處於透支狀態,支票帳戶將收到一封信。
public class Account {
private double balance;
private int acctNum;
public Account (int num)
{
balance = 0.0;
acctNum = num;
}
public void deposit (double amt)
{
if (amt >0)
balance +=amt;
else
System.out.println("Account.deposit(...): "
+"cannot deposit negative amount.");
}
public void withdraw (double amt)
{
if (amt>0)
balance -=amt;
else
System.err.println("Account.withdraw(...): "
+"cannot withdraw negative amount.");
}
public double getBalance()
{
return balance;
}
public double getAccountNumber()
{
return acctNum;
}
public String toString()
{
return "Acc " + acctNum + ": " + "balance = "+ balance;
}
public final void print()
{
System.out.println(toString());
}
}
現在SavingsAccount
public class SavingsAccount extends Account {
private double interest;
public SavingsAccount(int acctNum, double interest) {
super(acctNum);
this.interest=interest;
}
public double getInterest() {
double x= getBalance() + getBalance()*interest;
return x;
// public void setInterest((interest))
// this.interest=interest;
}
public void AddInterest (double interest) {
double x = super.getBalance() * interest;
super.deposit(x);
}
public String toString() {
return super.toString()+" Interest : " + interest;
}
}
的CheckingAccount
public class CheckingAccount extends Account {
private double limit;
public CheckingAccount(int acctNum, double limit) {
super(acctNum);
this.limit=limit;
}
public double getLimit() {
return this.limit;
}
public void setLimit(double limit) {
this.limit=limit;
}
public void withdraw (double limit) {
if (limit <= this.limit)
super.withdraw(limit);
else {
System.out.println(" Sorry, Limit Exceeded");
}
}
public String toString() {
return super.toString() +"Limit : "+limit;
}
}
銀行類
public class Bank {
public static void main(String[] args) {
Account[] accounts = new Account[2];
accounts[0] = new SavingsAccount(2, 0.25);
accounts[1] = new CheckingAccount(23, 50);
for(int i=0; i<accounts.length;i++) {
if (accounts[0].equals(SavingsAccount)
System.out.println(accounts[0].getInterest());
}
}
所以這裏是我注意到的問題。
在SavingsAccount中,我不確定如何讓setInterest()工作。我曾嘗試將其更改爲int,但隨後更改了Account類。我如何才能正常工作?
在銀行類 - 我寫的for循環。它不工作,我都試過,如果(帳戶[I] .equals如此如此,但似乎並沒有正常工作。什麼是正確的方法是什麼?
同時,我假設一切是從哪裏來的我SavingsAccount類。
您還沒有爲'Account'實施'equals'方法,因此'accounts [i] .equals'不應該起作用。 –
你可以交替使用'CurrentAccount'和'CheckingAccount'嗎? –
除此之外,「它不起作用」不是很具體。 *它做了什麼*以及你想要做什麼。用你的問題解釋一下[編輯](http://stackoverflow.com/posts/35052243/edit)。 –