1. AbstractMap<K,V> implements Map<K,V> 
2. HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> 
请问jdk中HashMap既然继承了AbstractMap<K,V>,为何还要实现Map<K,V>接口, 
从设计上说重复的实现接口有什么好处吗?

解决方案 »

  1.   

    这个自然知道,我想要知道的是:
    子类父类实现同一接口有什么作用? 
    简单的说,下面这样的代码: 
    B  implements  A C extends  B  implements  A 红色的代码有什么用? 
      

  2.   

    呵呵 LZ蛮细心的 我还真没注意过这种问题。学习不过我猜那只是JDK上用来描述的
    我刚才看了下很多类都是以那种形式写的
    从父子关系来说,父类已经实现了接口,子类就应该不需要重复实现了
      

  3.   

    LZ做事很认真 我想JDK这样写 就是想表示 父接口为Map 觉得没有实际意义的
      

  4.   

    你看一下map家族的源码,再比较一下就会发现
    AbstractMap 是implements Map的,它里面实现了部分功能,再所有的Map的子类中都不需要重写了
    HashMap 是继承了AbstractMap 并且implements Map,即HashMap完全可以只继承AbstractMap就可以
    而TreeMap 是继承了AbstractMap 并且implements SortedMap,但是TreeMap只继承AbstractMap是不能代表SortedMap的