如何用不同的方法实现单独的支票/储蓄账户

时间:2015-11-04 18:37:28

标签: java polymorphism

我正在尝试创建一个简单的银行系统,其客户端同时拥有支票和储蓄账户。两种类型的帐户都从Account类继承。账户的差异在于支票可以从支票账户中写入,利息可以添加到储蓄账户。但是,因为我使用的是多态,所以我无法找到一种方法来访问一个写入检查的方法,因为该方法在超类中不存在。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我没有"写支票"作为一种方法。

我开始使用一个界面来定义所有帐户可以执行的操作:

public interface Account {
    void deposit(Money amount);
    void withdraw(Money amount);
    Money getBalance();    
}

从那开始。让SavingsAccountCheckingAccount实现该接口(或创建AbstractAccount并同时扩展它)。

有了这个,问问自己:两者之间的多态差异是什么?我的猜测是,一个是有息的,另一个不是。两者可能会收取不同的费用。

这里需要Account以外的东西。

我有一个Bank课程,可以管理Account的集合。它将决定何时根据某些时间表支付利息(例如,如果每月复合,则在每月的第一天)。 Bank可以循环遍历Account集合,并将当天余额计算的金额存入每个SavingsAccount

正如您所看到的,所有帐户的界面都很好用。