为什么在已经在父母身上实现接口时实现接口?

时间:2016-10-27 11:26:45

标签: java oop collections interface jvm

我在很多地方甚至在Java核心本身看到,尽管在父类中实现了一个接口,但子类明确地实现了相同的接口。

作为示例,这是实现Set

AbstractSet的定义
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> 

和HashSet扩展了AbstractSet。

public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable

为什么我们要再次明确实施SetLinkedHashSet上的同一模式延伸HashSet

public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable 

LinkedHashSet扩展了Hashset

HashSet实施Set<E>Cloneablejava.io.Serializable

LinkedHashSet隐式实现所有接口,其父级扩展。那么为什么呢? 我试图搞清楚,但我找不到背后的原因。即使是为了可读性,为什么不明确地实现Collection?

如果我们删除这个不必要的implements关键字,它更具可读性。 有谁知道这背后有什么原因吗?

我在SOF上看到了一些关于此的问题,但是我并不相信这是为了更好的可读性,如果这也是为什么不实现Collection接口呢?

0 个答案:

没有答案
相关问题