java中虚拟类的问题

jwx0925 2009-12-06 04:19:13
我声明List l = new ArrayList()
List是虚拟类,很多地方都是这样声明,这样声明的好处是什么?
...全文
318 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2009-12-06
  • 打赏
  • 举报
回复
面向接口编程
你把变量l声明为其(某个)接口类型List,表明你在今后使用这个对象时,只关心在List接口(或其父接口,比如Collection)中声明的功能(动态添加、修改、删除元素,可以遍历等),而不关心其具体实现方式(比如ArrayList基于数组,LinkedList基于链表),也不关心它的其他功能,这符合编码的一个原则——一段代码应当功能尽可能简单专一。假如日后你的需求发生变化的时候,你只需要修改很少的地方(如果是利用第三方库,甚至不用修改),比如原先你的代码以遍历为主,使用ArrayList,而之后变成了修改,插入等为主,改为LinkedList
cfd406635982 2009-12-06
  • 打赏
  • 举报
回复
接口的好处,这是
用接口的引用,这样就只能访问接口里面有的方法。如:List list;
这样用list作为引用,就只能访问List的方法,而不能访问ArrayList的自己从先定义的方法
这样一来。如果你以后觉得不想用ArrayList了,你可以换成LinkedList,而后面的代码可以不换。因为他们的接口是相同的,原来list引用能访问的方法,现在依旧能访问
yangxiao_jiang 2009-12-06
  • 打赏
  • 举报
回复
List 不是接口吗,典型的面向接口编程。

好处的话,去google找面向接口编程。
小一郎 2009-12-06
  • 打赏
  • 举报
回复
向上转型
frank3G 2009-12-06
  • 打赏
  • 举报
回复
做了个向上转型的动作;方便其他的孩子吧

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧