2014-07-21 137 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接口。

相關問題