2014-09-13 173 views

回答

-1

***在兩個 示例中,列表實現之間沒有區別。但是,您可以在代碼中進一步使用 變量myList。

當你定義名單爲:

列表myList中=新的ArrayList();您只能調用方法並參考屬於List類的成員 。如果將其定義爲:

ArrayList myList = new ArrayList();您將能夠調用ArrayList 特定方法,並使用從List繼承的 之外的ArrayList特定成員。

然而,當你調用一個List類的方法,在第一 例子,這是在ArrayList中重寫,然後從ArrayList中 方法將被稱爲不是一個在列表中。

這就是所謂的多態性。你可以在那裏閱讀。***

對此答案予以ATrubkahere

0

List是一個接口給出。其他兩個是其中的實現。 你主要想對接口進行編碼。這是你西港島線做類似

List<String> strList = new ArrayList<String>(); 

後來在編碼過程中,你可能會發現,LinkedList的對您的方案更好的性能,所以你只需要改變一個位置。或者,也許你不關心使用哪個具體的實現,你只需要「某種列表」。然後你可以使用注入的List實現。就像這樣:

class ExampleClass{ 
    private List<String> strList = null; 

    // We don't know and we don't care if Array or Linked List. 
    public ExampleClass(List<String> aList){ 
     strList = aList; 
    } 

    //... 
} 

對於實現之間的差異,看到在評論爲「可能的重複......」或JavaDoc中給出的鏈接。

相關問題