【发布时间】:2018-10-31 04:32:01
【问题描述】:
我有不同的银行系统类。这些类是;
- 储蓄账户
- 学生账户
- 普通账户
现在我想创建一个 ArrayList 并用所有这些不同类的对象填充它,例如第一个元素是 studentaccount1,第二个元素是savingaccount 2...等等。
所以我尝试使用对象类型:
List<Object> accountList = new ArrayList<>();
但是使用这种方法,由于某种原因,我无法访问存储在类变量中的值,例如:
accountList.add(saving1);
accountList.get(saving1) 不会显示在这些类中声明的方法。
那么我该如何解决这个问题,或者以某种其他方式实现它?
编辑:
我忘了说普通帐户是父类,StudentAccount 和 SavingsAccount 都是子类。
因此我意识到我可以只将 ArrayList 声明为NormalAccount 类型(父类类型)并实现我想要的。
【问题讨论】:
-
这些类之间的类层次结构是什么?
-
三个账户类有父类吗?
-
NormalAccount 是父类,Student 和 Savings 都是继承自 NormalAccount 的子类
-
您可以在这些对象之间创建层次结构,似乎 BankAccount 类可以作为您在此处拥有的这些类的父级。然后您可以将基本方法添加到您的父类,并将特定于帐户的方法添加到您的子类。那么列表将是: List
list = new ArrayList();当你得到时,你需要检查哪个实例是什么。
标签: java list generics inheritance arraylist