接口 a = new 实例

aotian16 2010-08-10 04:02:44
比如:

List<String> list= new ArrayList<String>();



我知道都这样写,就是不知道有什么好处呢?

转换?

高手指教下,多谢
...全文
121 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ciltr 2010-08-10
  • 打赏
  • 举报
回复
楼主去看看工厂模式
闻志流e师兄 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 abcd880129 的回复:]
楼主,这东东标准答案有很多,不标准的答案也有很多,楼主应该在学习中自己感觉,我感觉这就是一种感觉,有问题就有动力
[/Quote]
说的有点道理。
这种用法的好处楼上说了很多,google也可以找到很多。
也许你用不到那些优点,此时感觉是一种习惯。
未来纪元 2010-08-10
  • 打赏
  • 举报
回复
楼主,这东东标准答案有很多,不标准的答案也有很多,楼主应该在学习中自己感觉,我感觉这就是一种感觉,有问题就有动力
Fredalsa 2010-08-10
  • 打赏
  • 举报
回复
面向接口編程,抽象原則
tuoxie119 2010-08-10
  • 打赏
  • 举报
回复
java三大特性之一。
pywepe 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 aotian16 的回复:]

引用 3 楼 soli11722984 的回复:

Collections.max(Collection<? extends T> coll)
那么coll应该是List还是Set好?

不过逻辑上来说,不管哪个,都会有最大值可以返回


这个里面传List和ArrayList都可以啊,没有体现出用List的好处啊
[/Quote]

List l = new ArrayList();
List l = new LinkedList();

如果换成这样呢
List l = (List)Class.forName("java.util.ArrayList");

接着
String lstr = "java.util.ArrayList";
List l = (List)Class.forName(lstr);

最后
String lstr = Propertites.getProperty("key"); //从配置文件获得
List l = (List)Class.forName(lstr);

这样就意味着你不用修改程序源码,只要必定配置文件就可以改变程序的实现了(行为),是不是很有意思呢?

多态的意义远大于此

上面的代码仅作示例用

skran 2010-08-10
  • 打赏
  • 举报
回复
比如说
List<String> list= new ArrayList<String>();
你可以
list = new LinkedList<String>();

但是
ArrayList<String> list = new ArrayList<String>();
你就不能那样做了

至于这样做的好处,嘿嘿,可能是为了节省栈空间吧。
Leson_Yin 2010-08-10
  • 打赏
  • 举报
回复
不觉得这样写省心吗?
aotian16 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 soli11722984 的回复:]

Collections.max(Collection<? extends T> coll)
那么coll应该是List还是Set好?

不过逻辑上来说,不管哪个,都会有最大值可以返回
[/Quote]

这个里面传List和ArrayList都可以啊,没有体现出用List的好处啊
soli11722984 2010-08-10
  • 打赏
  • 举报
回复
Collections.max(Collection<? extends T> coll)
那么coll应该是List还是Set好?

不过逻辑上来说,不管哪个,都会有最大值可以返回
-droidcoffee- 2010-08-10
  • 打赏
  • 举报
回复
面向接口编程的好处 lz Google 一下 ,网上多的去了

62,614

社区成员

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

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