JAVA中List泛型和ArrayList泛型的关系和区别
ArrayList不是继承List的吗?为什么我经常见到下面的用法?这是什么用法?List<UserVo>list=newArrayList<UserVo>();...
ArrayList不是继承List的吗?为什么我经常见到下面的用法?这是什么用法?
List<UserVo> list = new ArrayList<UserVo>(); 展开
List<UserVo> list = new ArrayList<UserVo>(); 展开
4个回答
展开全部
没关系,运行时动态绑定自动变成了ArrayList
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ArrayList实现了(而不是继承了)List接口。
List<UserVo> list = new ArrayList<UserVo>();这样的用法很多,表示下面我只需要list是一个List<UserVo>接口的对象就可以了,不在乎它的实现是什么,但是你要取得一个实例就得具体写new ArrayList<UserVo>()。
这样写的好处是,下面你只会用到List里的方法,不会不小心用到ArrayList里特有的方法,否则编译就会报错。有朝一日你对ArrayList这个具体实现不满意了,想换一个实现,比如LinkedList或干脆自己写个实现,你只要换= new ...那行就可以了。
List<UserVo> list = new ArrayList<UserVo>();这样的用法很多,表示下面我只需要list是一个List<UserVo>接口的对象就可以了,不在乎它的实现是什么,但是你要取得一个实例就得具体写new ArrayList<UserVo>()。
这样写的好处是,下面你只会用到List里的方法,不会不小心用到ArrayList里特有的方法,否则编译就会报错。有朝一日你对ArrayList这个具体实现不满意了,想换一个实现,比如LinkedList或干脆自己写个实现,你只要换= new ...那行就可以了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种写法和泛型没有关系. 是面向接口编程(一种面向对象编程原则).
可以到google查一下(面向接口编程), 这方面资料很多的.
可以到google查一下(面向接口编程), 这方面资料很多的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询