在Java
的util包中,
ArrayList的继承体系是实现
List接口并且继承
AbstractList(其它接口忽略),
但是其实在
AbstractList中已经实现了
List接口。
所以感觉这里在
ArrayList中再次实现
List`接口是不是多此一举了?或者还是有其它的设计目的?
在Java
的util包中,
ArrayList的继承体系是实现
List接口并且继承
AbstractList(其它接口忽略),
但是其实在
AbstractList中已经实现了
List接口。
所以感觉这里在
ArrayList中再次实现
List`接口是不是多此一举了?或者还是有其它的设计目的?
假设……仅仅是假设……下面所说这种情况极难发生,但并不排除其可能性
因为框架需要,AbstractList 不再实现 List 接口,而是实现 NewList 接口,这个时候 ArrayList 仍然要实现 List 接口,而且需要从 AbstractList 继承以实现复用……现在发挥你的相像力……
这在相对成熟的 JDK 中几乎不会发生,但难免你自己写的代码里可能会发生这种事情。而 JDK 自己的代码,就是一个设计模式和开发的典范,所以……
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
http://stackoverflow.com/questions/4387419/why-does-arraylist-have-imp...
其实Java中还有很多类似的设计:
HashSet,TreeSet 同时继承了AbstractSet和Set
HashMap<K,V>,TreeMap 同时继承了 AbstractMap<K,V>和 Map<K,V>