HashMap m=new HashMap();和Map m=new HashMap();
使用时的区别在什么地方?

解决方案 »

  1.   

    m.后面的方法只能是Map中的方法,使用时是动态绑定,就是调用的是HashMap对Map中的override方法
    class A{
    public void f1(){}
    public void f2(){}
    }class B extends A{
    public void f1(){}
    pubilc void f2(){}
    public void f3(){}
    }A a = new B();
    那么a调用的只能是f1、f2,而不能是f3,而f1、f2调用是是调用B里override的f1、f2
      

  2.   

    Map m=new HashMap();这个是通常的用法,是一种良好的风格。体现了“编程到接口,而不要到具体实现”这一基本原则。