Java:为什么WeakHashMap实现Map,而它已经由AbstractMap实现了?

时间:2012-12-27 22:48:37

标签: java collections weakhashmap

  

可能重复:
  Java.util.HashMap — why HashMap extends AbstractMap and implement Map?
  Why would both a parent and child class implement the same interface?

宣布

WeakHashMap< K,V> 以扩展 AbstractMap< K,V> 并实施 Map< K,V>

AbstractMap< K,V> 已实施地图< K,V> 。看起来implements声明是多余的。

宣布它的原因是什么?

3 个答案:

答案 0 :(得分:3)

除非有人能够指出JDK中WeakHashMap的作者在某处发布的原因,我们只能推测。猜测是它改进了自动生成的文档。它对类暴露的接口或您如何使用它没有任何影响。

答案 1 :(得分:2)

虽然它确实是多余的,但它确保如果从父节点中删除接口实现,则子节点仍将由Map接口保持并产生必要的编译错误。

答案 2 :(得分:1)

这看起来像是一个俯视。如果扩展类,则会自动实现基类实现的所有接口(无论该基类是否为abstract)。所以,给定:

public interface I {}

public class A implements I {}

你宣布:

public class B extends A {}

上述声明严格等同于

public class B extends A implements I {}

确实忽略了。很好的发现;)