读书人

请教jdk中HashMap既然继承了AbstractM

发布时间: 2011-12-27 22:22:55 作者: rapoo

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

读书人网 >J2EE开发

热点推荐