List list = new ArrayList()
1、这是一个好的编程习惯,代码有更大的灵活性
因为List只是接口,实现List接口的不只是ArrayList,还有其他容器类,例如Vector。如果你用ArrayList list = new ArrayList(),那就失去了通用性,使用List,你就可以不必关注用的是ArrayList,还是Vector。例如在下面的代码中List getList(){
List list = new ArrayList();
return list;
}
客户程序不必关心你用的是ArrayList还是Vector,哪天你因为需要改成
List getList(){
List list = new Vector();
return list;
}
客户程序并不受影响,你的方法的返回值也不必改变,但如果你用
Vector getList(){
Vector list = new Vector();
return list;
}
你看,首先你的方法的返回值必须作相应改变,调用该方法的客户程序也得改,这可能牵涉一系列改动,而用List则省去了这些麻烦。
从这个例子可以推而广之,在new一个新对象时,左边尽量使用接口,以保持代码的最大灵活性。
2、是个隐式的类型转换,把“大”转为“小”