3

tldr:如何创建抽象类型 BankAccount 的列表并将具体子类型添加到列表中

在 java 中,我有一个名为 BankAccount 的类。它是一个抽象类,因为我不希望任何人使用常规的 BankAccount,他们应该使用子类型 SavingsAccount、CheckingAccount、VacationAccount。

我想在客户类中有一个属性,即称为帐户的列表。在类定义中,我添加了一个类似的属性并且没有将它初始化为任何东西。在构造函数中,我想根据用户在构造函数中指定的内容添加一个帐户,但是当我这样做时,我在调用 add() 时出现错误。

它看起来像这样

List<BankAccount> accounts;

accounts.add(new CheckingAccount() );

这应该工作吗?我究竟做错了什么。我试着做

List<BankAccount> accounts = new List<BankAccount>(); 

但这不起作用。

4

1 回答 1

10

也许你的意思是:

List<BankAccount> accounts = new ArrayList<BankAccount>();

List只是一个接口,创建实例时应该使用具体的实现,例如ArrayList

于 2012-04-14T18:27:45.200 回答