java中的接口list

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:35:03
我写简单点吧,我就想问下list list = new ArrayList();这样写有什么好处,为什么不直接ArrayList list = new ArrayList();呢?请高手帮忙解决。谢谢。

这么写是为了以后扩展的方便。List list = new ArrayList();的话,这个list就只能使用List接口的方法了;ArrayList list = new ArrayList();的话,这个list除了能使用List接口的方法外,还能使用ArrayList特有的方法。但是,如果有一天,在原来那个程序里,ArrayList满足不了你的要求了,你要换成OtherList才能实现需求,而且,你还在原来的程序里使用了ArrayList特有的方法,那么此时,你就要大量修改你原来的代码了,甚至重新写一个程序,这就是不易维护!!所以一开始时,你就是这样定义的话List list = new ArrayList();要换成OtherList就只需改一个地方:List list = new OtherList();虽然,你只能用List接口的方法,但当需求发生改变时容易维护啊!!随便的软件,随便就上万行代码,这改起来不得了啊!!!

java方很流行的话:面向接口编程!(IOP)

List只是个接口,ArrayList,LinkedList,Vector等是实现他的类,如果你ArrayList list = new ArrayList();那么就限定死为ArrayList了,如果来了一个LinkedList就没法了。
但是如果用List创建对象的话,只要是实现过他的类,都可以实例化对象,所以方便扩展。

List是接口,而ArrayList是他的一个实现类。这样说你应该知道有什么区别的了吧。

没区别吧