java中的接口list
我写简单点吧,我就想问下listlist=newArrayList();这样写有什么好处,为什么不直接ArrayListlist=newArrayList();呢?请高手...
我写简单点吧,我就想问下list list = new ArrayList();这样写有什么好处,为什么不直接ArrayList list = new ArrayList();呢?请高手帮忙解决。谢谢。
展开
4个回答
展开全部
这么写是为了以后扩展的方便。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,LinkedList,Vector等是实现他的类,如果你ArrayList list = new ArrayList();那么就限定死为ArrayList了,如果来了一个LinkedList就没法了。
但是如果用List创建对象的话,只要是实现过他的类,都可以实例化对象,所以方便扩展。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没区别吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
List是接口,而ArrayList是他的一个实现类。这样说你应该知道有什么区别的了吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询