//Copyright (c) 2002, Art Gittleman //This example is provided WITHOUT ANY WARRANTY //either expressed or implied. /* Defines CheckingAccount class derived from BankAccount. */ using System; public class CheckingAccount : BankAccount { private double minBalance; // Balance needed to avoid charge private double charge; // Per check charge public CheckingAccount (double minAmount, double charge) : base() { minBalance = minAmount; this.charge = charge; } public void ProcessCheck(double amount) { if (GetBalance() >= minBalance) base.Withdraw(amount); else base.Withdraw(amount + charge); } public override void Withdraw(double amount) { ProcessCheck(amount); } //Add code for Exercise 10.9 public override BankAccount ReadAccount() { Console.Write("Minimum balance for free checking: "); double min_bal = double.Parse(Console.ReadLine()); Console.Write("Per check charge: "); double charge = double.Parse(Console.ReadLine()); BankAccount acc = new CheckingAccount(min_bal, charge); return acc; } public override string ToString() { return " minBalance = " + this.minBalance + " charge = " + this.charge + " balance = " + GetBalance() ; } }