1 /**
2 A savings account earns interest on the minimum balance.
3 */
4 public class SavingsAccount extends BankAccount
5 {
6 private double interestRate;
7 private double minBalance;
8
9 /**
10 Constructs a savings account with a zero balance.
11 */
12 public SavingsAccount()
13 {
14 interestRate = 0;
15 minBalance = 0;
16 }
17
18 /**
19 Sets the interest rate for this account.
20 @param rate the monthly interest rate in percent
21 */
22 public void setInterestRate(double rate)
23 {
24 interestRate = rate;
25 }
26
27 public void withdraw(double amount)
28 {
29 super.withdraw(amount);
30 double balance = getBalance();
31 if (balance < minBalance)
32 {
33 minBalance = balance;
34 }
35 }
36
37 public void monthEnd()
38 {
39 double interest = minBalance * interestRate / 100;
40 deposit(interest);
41 minBalance = getBalance();
42 }
43 }