LinkedHashMap签名

Ele*_*eco 9 java collections linkedhashmap

查看LinkedHashMap的JDK源代码,我注意到这个类被声明为:

 public class LinkedHashMap<K,V>
       extends HashMap<K,V>
       implements Map<K,V>
   {...
Run Code Online (Sandbox Code Playgroud)

为什么冗余的" implements Map<K,V>"(因为HashMap已经实现了Map)?我无法想象这是一个错字......

谢谢.

aio*_*obe 12

我想这是一种说法

无论HashMap实现什么接口(现在或将来),这个类都应该实现Map接口.

如果负责HashMap的人决定不再实现Map接口,编译器将警告LinkedHashMap的维护者它不再按照他的意图实现Map接口.

当然,在这种特殊情况下它很傻(HashMap显然总是一个Map),但类似的情况可能会受益于(并且已经产生)这样的约定.