假定银行的一个存取款系统有两类客户,一类是现金用户,一类是信用卡用户。银行对每个客户都要登记其姓名name,并为之分配一个唯一的账户号码aid,现金用户还要记录其卡的类型(工资卡...
假定银行的一个存取款系统有两类客户,一类是现金用户,一类是信用卡用户。银行对每个客户都要登记其姓名name,并为之分配一个唯一的账户号码aid,现金用户还要记录其卡的类型(工资卡、借记卡、理财卡),而信用卡用户则根据其信用级别有一定的透支限额lineOfCredit(A级10000元、B级5000元、C级2000元、D级1000元)。每种客户都可以实现存deposit、取withdraw、和查询余额getBalance和交易历史showTransactions(信用卡用户还可以查询透支情况findOverdraw和信用showCredit情况)要求。对于现金用户,每次取款操作只能在账户实际额度balance内操作,允许现金用户改变自己的帐户类型。
1. 分析有那些属性和方法可以作为两个子类的共同属性和方法,然后写出抽象类Account的定义。
2. 分析CashAccount有那些新增的属性和方法,定义一个继承于Account的子类CashAccount。
3. 你认为信用等级是否可以作为一个类存在,如果是,请定义。
4. 分析CreditAccount有那些新增的属性和方法,然后定义一个继承于Account的子类CreditAccount,添加增加的属性和方法。
5. 请按照要求编写一个程序用你所定义的类完成下列业务操作。
(1) 用Account作为类型定义两个变量,分别引用CreditAccount和CashAccount的对象,并完成存款500元的操作。
(2) 分别用类型转换机制,将上述创建的对象用CreditAccount和CashAccount类型的变量引用。完成取款200元的操作。
(3) 每个对象再次取款400元,请输出各自的余额。
(4) 查看CreditAccount对象的透支额,并显示其可以透支的最大限额。
(5) 列出其中一个账户的交易历史。
展开