透支处理规则:
比较 amount(当前提款金额)和 balance(当前帐户余额)
若当前透支额 amount-balance>overdraftProtection,那么整个交易应该放
弃,提款失败。否则提款后的 balance 应为 0,提款后的最大透支额度
overdraftProtection 应该为原有最大透支额度减去(amount-balance )。
(3)再看 Account 类
其 withdraw 行为要在其具体的子类中才能确定,故将其 withdraw 方法设
计成一个抽象方法,由子类去改写。因此 Account 类也应重新设计成一个抽象
类。
Step2:
具体实现参考:
1、和上一题相比,Account 类中的 balance 属性的访问控制修饰符变成了
protected。其 withdraw 方法变成一个抽象方法,因此 Account 类是一个抽象
类。
2、SavingsAccount 类设计
1)定义一个 double 型的数据属性 interestRate(利率)。
2)定义一个带有两个参数 balance 和 interest_rate 的构造方法。这个构
造方法通过 super(balance)调用父类的构造方法完成对 balance 属性的初始化。
3) 增加一个 addInterest()方法,将所获利息加到 balance 上。
4)实现父类中的 withdraw 抽象方法。
3、CheckingAccount 类
1)定义一个 double 型的属性(最大透支额度)。
2)定义一个带有一个 balance 参数的构造方法。这个构造方法通过
super(balance) 调用父类的构造方法。
3 ) 定 义 另 外 一 个 带 有 两 个 参 数 的 构 造 方 法 。 这 个 构 造 方 法 通 过
super(balance) 调用父类的构造方法,并且对属性 overdraftProtection 进行设
置。
4)对成员方法 withdraw 进行改写,改写规则见 Step1。
Step3:
仿照银行和客户之间的关系修改 Customer 类,使一个客户可以有多个帐号。
Step4:
编写测试程序,首先添加四个客户到银行,并分别为其添加帐号。打印报表。
并 对 第 一 个 客 户 的 各 个 帐 户 进 行 操 作 以 验 证 SavingsAccount 和
CheckingAccount 类中 withdraw 方法的正确性。