最近阅读集合源码发现一个问题,collection 下面的对象总有父类实现某接口子类再次实现次接口。
1 | public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> ; |
原因猜测
- 可读性
- 添加Map接口声明是为了Class类的getInterfaces这个方法能够直接获取到Map接口;
- 可维护性
结论
[当初作者的一个错误](https://stackoverflow.com/questions/2165204/why-does-linkedhashsete-extend-hashsete-and-implement-sete)