如何在java中初始化抽象类型的List,以便稍后我可以将子类型添加到列表中

jam*_*mes 3 java collections abstract-class list

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

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

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

它看起来像这样

List<BankAccount> accounts;

accounts.add(new CheckingAccount() );
Run Code Online (Sandbox Code Playgroud)

这有用吗?我究竟做错了什么.我试过了

List<BankAccount> accounts = new List<BankAccount>(); 
Run Code Online (Sandbox Code Playgroud)

但那不起作用.

ten*_*ica 10

也许你的意思是:

List<BankAccount> accounts = new ArrayList<BankAccount>();
Run Code Online (Sandbox Code Playgroud)

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