刚看完张孝祥老师的交通灯管理系统,里面提到了一点面向接口编程...所以就有了下面这三个
ArrayList a = new ArrayList();
Collection b = new ArrayList();
List c = new ArrayList();
不就是一个集合么,一直分不清楚为什么写成这三样,有什么不一样,求教一下大家... 作者: ssx0101 时间: 2012-11-15 17:31
Collection是层次结构中的根接口,List是Collection的子接口,ArrayList是实现了List的类。
ArrayList a = new ArrayList();
Collection b = new ArrayList();
List c = new ArrayList();
对象a、b、c、能进行的操作是不一样的。 作者: 王玮 时间: 2012-11-15 19:26
1.Collection是集合结构中的根接口
2.List是Collection的子接口
3.ArrayList是实现了List的子类。
其实这里面重要的是多态。
比如现在 你的Collection col=new ArrayList();(ArrayList的查询效率高)
但在后期因为需要,你改成了Collection col=new LinkedList();(插入删除效率高)
只需要更改具体的实现类,不需要改 与Collection col有关的代码。
这也是面向接口编程的一个大大的好处。只需要更改具体实现。
作者: 胡凤 时间: 2012-11-15 19:53
Collection是List的基接口,
list是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。
ArrayList是实现List的类,实现了可变大小的数组。作者: 李栋梁 时间: 2012-11-15 21:01
面向接口编程有利于以后程序的扩展的,List c = new ArrayList();这句用到了多态,多态就是父类的引用指向子类 作者: 李桐 时间: 2012-11-15 21:43
那一般什么时候用什么呢作者: 程宏志 时间: 2012-11-15 21:55
ArrayList a = new ArrayList();
Collection b = new ArrayList();
List c = new ArrayList();
我没有看这相关的视频,就从这里理解, ArrayList 、 Collection 、 List 应该是三个接口,而 ArrayList();实现了这三个接口,
要是理解这个的话,我建议楼主看下抽象类继承的方法,和多态的应用,
这里你可以把接口看成抽象类的话,比较好理解。
这种格式使用了多态中的转型
父类的引用指向子类的对象!
打个比方:abstract class A{}