2
可能重複:
Isn't it easier to work with foo when it is represented by the class ArrayList rather than the interface List?
Why are most of the examples using ArrayList爲什麼通常地圖<X, X> =新的HashMap <X, X>()而不是HashMap <X, X> = new HashMap <X, X>()?
爲什麼我們主要是做,這樣:
Map<Integer, String> map = new HashMap<Integer, String>();
,而不是:
HashMap<Integer, String> map = new HashMap<Integer, String>();
&同時實例化ArrayList(s)。
它不僅是從一種類型轉換到另一種(HashMap到TreeMap),而是支持多態。您應該依賴合同(接口)而不是對象的內部實現。 – ewernli
@ewernli我知道我試圖舉一個例子,所以我想我錯過了這一點。 –