我正在尝试创建一个简单的银行系统,其客户端同时拥有支票和储蓄账户。两种类型的帐户都从Account类继承。账户的差异在于支票可以从支票账户中写入,利息可以添加到储蓄账户。但是,因为我使用的是多态,所以我无法找到一种方法来访问一个写入检查的方法,因为该方法在超类中不存在。有什么想法吗?
答案 0 :(得分:0)
我没有"写支票"作为一种方法。
我开始使用一个界面来定义所有帐户可以执行的操作:
public interface Account {
void deposit(Money amount);
void withdraw(Money amount);
Money getBalance();
}
从那开始。让SavingsAccount
和CheckingAccount
实现该接口(或创建AbstractAccount
并同时扩展它)。
有了这个,问问自己:两者之间的多态差异是什么?我的猜测是,一个是有息的,另一个不是。两者可能会收取不同的费用。
这里需要Account
以外的东西。
我有一个Bank
课程,可以管理Account
的集合。它将决定何时根据某些时间表支付利息(例如,如果每月复合,则在每月的第一天)。 Bank
可以循环遍历Account
集合,并将当天余额计算的金额存入每个SavingsAccount
。
正如您所看到的,所有帐户的界面都很好用。