java – 为什么LinkedHashMap类实现Map接口?

参见英文答案 > Why do many Collection classes in Java extend the abstract class and implement the interface as well?10个
HashMap类实现了Map接口:
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>,Cloneable,Serializable

LinkedHashMap类扩展了HashMap,这意味着它应该认实现Map接口.为什么明确实现Map接口?

public class LinkedHashMap<K,V>
extends HashMap<K,V>

解决方法

你说得对:丢弃Map< K,V>来自链接哈希映射的声明不会改变任何东西.虽然LinkedHashMap< K,V>将实现Map< K,V>仅仅因为它扩展了HashMap< K,链接哈希映射从常规哈希映射派生的事实是实现细节,而不是硬性要求.

实现Map< K,V>另一方面,界面是一项基本要求.如果设计者决定实施LinkedHashMap< K,则该要求不会消失.从头开始,或依赖于其他一些基类,例如链表.

这就是为什么LinkedHashMap的设计者< K,V>提到地图< K,V>明确地说:如果在某个晚些时候基类会因重新设计而改变,那么界面将保持不变.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...