在JAVA中创建集合实例

ken*_*nny 4 java

可能重复:
为什么要优先选择Java类的接口?
使用Collection接口创建ArrayList对象的多态性有什么好处?

我在很多例子中看到,当一个人创建像TreMap这样的集合的实例时,他会使用它的基类作为类型:

Map<String,String> theMap = new TreeMap<String,String>();
Run Code Online (Sandbox Code Playgroud)

为什么不使用

TreeMap<String,String> theMap = new TreeMap<String,String>(); 
Run Code Online (Sandbox Code Playgroud)

mae*_*ics 5

因为将代码编写到接口(Map)而不是实现(TreeMap)被认为是更好的做法.通过这种方式,您可以自由切换到不同的实现(例如HashMap,如果您以后决定它是一个更好的解决方案),只需要最少的代码触摸点.