宣布可能重复:
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
声明是多余的。
宣布它的原因是什么?
答案 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 {}
确实忽略了。很好的发现;)