黑马程序员技术交流社区
标题:
关于Map中values方法
[打印本页]
作者:
湛添友
时间:
2014-4-13 09:14
标题:
关于Map中values方法
返回值是Collection 这不是个接口吗? 怎么可以实例化呢?
作者:
yanzhendong
时间:
2014-4-13 09:34
额,通过接口操作子类,楼主不知道父类引用可以指向子类吗,虽然返回值是Collection,但是是向上转型了,其实际类型可能是Collection接口的一个具体子类型,返回值设置为接口是为了通用型,楼主可以试一下,将一个Collection的子类当成Collection返回,在用Collection引用调用Collection接口中的方法
作者:
yanzhendong
时间:
2014-4-13 09:38
public class InnerClass {
public static void main(String[] args) throws IOException {
test t=new my().td();
t.show();
}
}
interface test{
void show();
}
class my{
test td(){
return new test() {
@Override
public void show() {
System.out.println("this is a test");
}
};
}
}
复制代码
这是示例代码,可以看到,可以通过接口引用调用接口中的方法
作者:
湛添友
时间:
2014-4-13 10:01
yanzhendong 发表于 2014-4-13 09:34
额,通过接口操作子类,楼主不知道父类引用可以指向子类吗,虽然返回值是Collection,但是是向上转型了,其 ...
HashMap<String,String> m=new HashMap<String,String>();
Collection<String> c=m.values();
总感觉是这个意思 Collection<String> c=new Collection<String> (); 这是不允许的吧?
我纠结于这个 c 到底是哪个?
作者:
Faner
时间:
2014-4-13 10:12
不可以实例化呀 使用它的子类来实例化的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2