以ArrayList为例
语法区别:
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
面向接口角度出发:
- List是接口(抽象类),不可实例化;
ArrayList为它的实现类可以实例化。 - 声明为List对象,则不能用ArrayList中的自定义以及本身独有的方法和属性。
- 声明为List对象,可以规范代码,利于代码重构;即可接受ArrayList对象或LinkedList对象,改动时只需动一行,其他用List对象的方法和属性均可保留。
Tips:
ArrayList<E>
:泛型概念,E可任意类型。确定即不能改变。
好处: 提高安全性,编译器检查类型是否安全;提高可读性,避免强制类型转换。