List
是一个接口。您无法创建接口实例。
ArrayList
是实现List的类,您可以创建一个。
接口仅定义行为。一个实现和接口实现该行为的类。
您将注意到,如果您查看API,则许多不同的类将实现该List
接口。那是因为它们都提供了List
定义方法的实现。而且,这些实现可能大都不同,因为和的ArrayList
工作方式不同,例如aLinkedList
。
最好使用表格
List list = new ListType()
因为您可以在以后更改列表实现(如果需要),而不会影响您的代码。原因是如果您这样做
ListType list = new ListType()
列表的类型为ListType
,只有和的一个实例具有ListType
子类。
如果您执行上面显示的首选分配,则可以将实现的 分配List
给list
。