List<String> list = new ArrayList<String>();
在識別除超類和子類以外的零件時,List和ArrayList是什麼?什麼是初始化時調用超類和子類?
是List引用和ArrayList的類嗎?
他們會被稱爲別的東西,如果他們是相同的,如:
ArrayList<String> list = new ArrayList<String>();
List<String> list = new ArrayList<String>();
在識別除超類和子類以外的零件時,List和ArrayList是什麼?什麼是初始化時調用超類和子類?
是List引用和ArrayList的類嗎?
他們會被稱爲別的東西,如果他們是相同的,如:
ArrayList<String> list = new ArrayList<String>();
List
是一個接口。 ArrayList
是它的一個實現。既不是另一個的超類或子類。
有三個部分此聲明:
list
)List<String>
)ArrayList<String>
)無論如何修改編譯時間typ即
List
是一個接口; ArrayList
是該接口的一個實現。
在第一個示例中List
是定義對象的引用類型的接口list
和ArrayList
是接口的實現,它是實際對象的類型。 在第二示例中,兩個對象及其引用具有類型ArrayList
差異:
List
的方法可以將列表對象上被調用。多態現象在這裏。ArrayList
類的方法。第一個優點:
即使您更改實施:
List<String> list = new LinkedList<String>();
或
List<String> list = new Vector<String>();
你沒有改變,其餘代碼。
超類不需要是一個接口,它可能是另一個類。你提供的重複鏈接是關於接口的。 – tazboy
概念上,它是一樣的。 'List'是'ArrayList'的超類型。而'List'是一個由'ArrayList'實現的接口(並且有很多實現)。有了這樣的結構,你就可以有效地做所謂的「編程接口」。因此,鏈接的問題。 – Tunaki