首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2011-12-27 
请问jdk中HashMap既然继承了AbstractMapK,V,为何还要实现MapK,V接口,从设计上说重复的实现接口有什么

请问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的

热点排行