如java.util.*
,AbstractSet<E> implements Set<E>
所示,为什么HashSet<E> extends AbstractSet<E> implements Set<E>
?这里是否重复了“implements Set<E>
”?
答案 0 :(得分:2)
这样做是为了能够覆盖javadoc文档
例如HashSet<E>
和AbstractSet<E>
的javadoc不同。
也可以做得更清晰。
答案 1 :(得分:2)
是的,它是重复的,但我想这是一个编码风格的决定。我也喜欢明确地实现接口,一种类型是有动力引入的。扩展只是一个实现细节,通常是重用的动机。因此,即使在删除基类并以其他方式实现这些功能时,从基类继承的类型也将是稳定的。