2014-07-21 104 views
0

我可以输入为什么我不能写`List <T> l = new List <T>();`在Java中?

ArrayList<T> l = new ArrayListList<T>(); 

List<T> l = new ArrayList<T>(); 

但Java不允许我使用

List<T> l = new List<T>(); 

为什么?

+13

因为'List'是一个接口 –

+0

'List'是一个接口。你不能实例化一个接口。 'ArrayList'是一个类,它是'List'的一个实现。类可以被实例化。 – forgivenson

+1

您可能想阅读本教程(http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)。它是关于抽象类的,但其中很多也适用于接口。 – ajb

回答

2

List是一个接口,所以它没有方法实现,也不能实例化。前两个例子实例化一个ArrayList,这是一个非抽象类,它实现List接口。

相关问题