Account
package 继承与super练习;
public class Account {
private int id;
protected double balance;
private double annualInterestRate;
public Account() {
}
public Account (int id, double balance, double annualInterestRate ) {
this.id = id;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public void withdraw (double amount) {
if(amount > 0 && amount <= balance)
balance -= amount;
else if(amount > balance)
System.out.println("余额不足!");
System.out.println("您的帐户余额为:" + balance);
}
public double getMonthlyInterest() {
return annualInterestRate/12;
}
public void deposit (double amount) {
if(amount > 0) {
balance += amount;
System.out.println("您的余额为:" + balance);
System.out.println("月利率为:" + getMonthlyInterest());
}
}
}
CheckAccount
package 继承与super练习;
public class CheckAccount extends Account{
private double overdeaft;
public CheckAccount() {
super();
}
public CheckAccount(int id, double balance, double annualInterestRate,double overdeaft) {
super(id, balance, annualInterestRate);
this.overdeaft = overdeaft;
}
public double getOverdeaft() {
return overdeaft;
}
public void setOverdeaft(double overdeaft) {
this.overdeaft = overdeaft;
}
public void withdraw(double amount) {
if(amount > 0 && amount < balance)
balance -= amount;
if(amount > balance) {
double overdeaft1 = amount - balance;
if(overdeaft > overdeaft1) {
balance = 0;
overdeaft -= overdeaft1;
}
else if(overdeaft < overdeaft1)
System.out.println("超过可透支限额!\n");
}
}
public static void main(String[] args) {
CheckAccount user = new CheckAccount(1122, 20000, 0.045,5000);
user.withdraw(5000);
System.out.println("您的帐户余额为:" + user.getBalance());
System.out.println("您的可透支额:" + user.getOverdeaft() + "\n");
user.withdraw(18000);
System.out.println("您的帐户余额为:" + user.getBalance());
System.out.println("您的可透支额:" + user.getOverdeaft() + "\n");
user.withdraw(3000);
System.out.println("您的帐户余额为:" + user.getBalance());
System.out.println("您的可透支额:" + user.getOverdeaft() + "\n");
}
}