List是一个接口 ArrayList是LIst接口下的一个实现类
List
子类的对象动态的指向父类
这样的好处是
ArrayLIst可以随便改变实现类 而list对象不用变
比如
List
没关系,运行时动态绑定自动变成了ArrayList
ArrayList实现了(而不是继承了)List接口。
List
这样写的好处是,下面你只会用到List里的方法,不会不小心用到ArrayList里特有的方法,否则编译就会报错。有朝一日你对ArrayList这个具体实现不满意了,想换一个实现,比如LinkedList或干脆自己写个实现,你只要换= new ...那行就可以了。
这种写法和泛型没有关系. 是面向接口编程(一种面向对象编程原则).
可以到google查一下(面向接口编程), 这方面资料很多的.