12.10Account继承层次
时间: 2023-06-23 15:09:01 浏览: 43
在Java中,Account继承层次可以如下定义:
```
public class Account {
private String accountNumber;
private double balance;
public Account(String accountNumber, double balance) {
this.accountNumber = accountNumber;
this.balance = balance;
}
public String getAccountNumber() {
return accountNumber;
}
public double getBalance() {
return balance;
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
balance -= amount;
}
public void transfer(Account toAccount, double amount) {
withdraw(amount);
toAccount.deposit(amount);
}
}
public class SavingsAccount extends Account {
private double interestRate;
public SavingsAccount(String accountNumber, double balance, double interestRate) {
super(accountNumber, balance);
this.interestRate = interestRate;
}
public double getInterestRate() {
return interestRate;
}
public void setInterestRate(double interestRate) {
this.interestRate = interestRate;
}
public double calculateInterest() {
return getBalance() * interestRate;
}
}
public class CheckingAccount extends Account {
private double overdraftLimit;
public CheckingAccount(String accountNumber, double balance, double overdraftLimit) {
super(accountNumber, balance);
this.overdraftLimit = overdraftLimit;
}
public double getOverdraftLimit() {
return overdraftLimit;
}
public void setOverdraftLimit(double overdraftLimit) {
this.overdraftLimit = overdraftLimit;
}
@Override
public void withdraw(double amount) {
if (amount > balance + overdraftLimit) {
throw new IllegalArgumentException("Withdrawal amount exceeds overdraft limit");
}
balance -= amount;
}
}
```
在这个继承层次中,Account类是基类,SavingsAccount和CheckingAccount类是Account类的子类。SavingsAccount类表示储蓄账户,具有计算利息的功能;CheckingAccount类表示支票账户,具有透支额度的限制。这些子类都继承了Account类的属性和方法,并且可以通过重写方法来实现它们自己的行为。