关于set的一个问题

lf383554330 2012-09-06 09:48:45
HashMap map = new HashMap();
Set set = map.keySet();
在java中 Set是一个接口,为什么能够这样用?
接口不是只有被实现后才可以用吗?
...全文
174 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdong20 2012-09-08
  • 打赏
  • 举报
回复
这是向上转型,实现了set接口就可以向上转型为set
rockets311 2012-09-08
  • 打赏
  • 举报
回复
google一下“多态”。
dsb_csdn 2012-09-06
  • 打赏
  • 举报
回复
说实话,这个问题还真没有考虑过,学海无涯啊。。。。
未来纪元 2012-09-06
  • 打赏
  • 举报
回复
这里的Set是声明一个对象指向map得到的set实例
hheeyyii 2012-09-06
  • 打赏
  • 举报
回复
Set set = map.keySet();

map返回的是一个实现set接口的对象。这个对象实现了Set接口,就可以这样赋值。或者说叫向上转型也可以

就好比你写List a = new ArrayList();
list是接口,arrayList是实现list接口的对象。
2399 2012-09-06
  • 打赏
  • 举报
回复
Map的方法,返回map里面的key的集合,用set装起来的,而不是数组或者list而已
brightyq 2012-09-06
  • 打赏
  • 举报
回复
这里的map是HashMap类型的对象,可以用keySet方法。

set是一个Set类型的变量,并没有实例化对象,也没有用其中的方法,所以没什么问题。

62,614

社区成员

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

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