请教jdk中HashMap既然继承了AbstractMap为何还要实现Map接口,从设计上说重复的实现接口有什么好处

请问jdk中HashMap既然继承了AbstractMap<K,V>,为何还要实现Map<K,V>接口,从设计上说重复的实现接口有什么好处
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>接口, 
从设计上说重复的实现接口有什么好处吗?

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