当前位置: 代码迷 >> J2EE >> 请教jdk中HashMap既然继承了AbstractMap<K,V>为何还要实现Map<K,V>接口,从设计上说重复的实现接口有什么好处
  详细解决方案

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

热度:697   发布时间:2016-04-22 03:01:25.0
请问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的
  相关解决方案