我在閱讀Java文檔時遇到了一個奇怪的情況。這裏是鏈接到Arrays.asList方法Oracle的Java文檔,http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T...)關於Java接口和多態性
有一個在文檔
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
我的問題就是一個例子,因爲列表是一個接口,我們爲什麼可以聲明走狗作爲'List',而不是一個實現List的具體子類(例如ArrayList或LinkedList)? 那麼這是否意味着我們可以有一個接口類型的引用變量?它對我來說看起來不太古怪,因爲我總是認爲接口僅僅代表多態性,我們絕不應該使用接口類型變量。
任何人都可以給我一些線索嗎?
'我們不應該真的使用接口類型變量'完全相反是正確的! – A4L 2013-04-07 14:27:36
我明白,對於多態我們應該聲明函數參數並返回類型和數組類型作爲接口類型變量。但對於我在問題中提到的情況,我很困惑。 – Bpache 2013-04-07 14:29:32
java中的局部變量,函數參數和返回類型幾乎沒有區別。能夠將對象視爲接口是接口的主要功能之一。 – 2013-04-07 14:31:38