日期:2014-05-20  浏览次数:20618 次

关于set的一个问题
HashMap map = new HashMap();
Set set = map.keySet();
在java中 Set是一个接口,为什么能够这样用?
接口不是只有被实现后才可以用吗?

------解决方案--------------------
Set set = map.keySet();

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

就好比你写List a = new ArrayList();
list是接口,arrayList是实现list接口的对象。
------解决方案--------------------
这是向上转型,实现了set接口就可以向上转型为set