黑马程序员技术交流社区

标题: 关于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
  1. public class InnerClass {

  2.         public static  void  main(String[] args) throws IOException {
  3.    test t=new my().td();
  4.    t.show();
  5.         }
  6. }
  7. interface test{
  8.         void show();               
  9. }
  10. class my{
  11.         test td(){
  12.                 return new test() {               
  13.                         @Override
  14.                         public void show() {
  15.                                 System.out.println("this is a test");                               
  16.                         }
  17.                 };               
  18.         }       
  19. }
复制代码

这是示例代码,可以看到,可以通过接口引用调用接口中的方法
作者: 湛添友    时间: 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