今天翻了一下java的api,发现HashMap继承了AbstractMap,AbstractMap已经实现了map接口,为什么HashMap又一次显示的实现了map接口,为了用反射的时候更方便获得map接口?map hashmap

解决方案 »

  1.   

    Map map = new HashMap();
    map 是不是 父类对象调用子类对象(子类 new 出来的一个对象)
    这么做的目的 以后你尝试着写接口的时候会慢慢体会到。我也只学了一点,先学现卖了
      

  2.   

    往简单了想 , 其实就是增加可读性, 大多数程序员只关心是不是Map  没人关心是不是AbstractMap ,所以Sun公司想到了很多程序员会看JDK源码, 不如直接标识出来, 省得再追加一步.往复杂了想,  思维的先后顺序应该是先有接口定义, 后有实现类, 几个实现类写完之后发现很多重复代码, 应该在中间抽取出一个骨干抽象类,  AbstractMap是后出现的.
      

  3.   

    HashMap如果不实现Map接口,,如果以后AbstractMap类被废弃,HashMap是谁的子类HashMap如果实现Map接口,不管AbstractMap存不存在,它都是遵循协议的,有AbstractMap的时候HashMap可以多用几个方法,没有AbstractMap,HashMap还能自己写。