Vector既然继承了AbstractList为啥还要实现List接口
来源:互联网 发布:手机桌面文件夹软件 编辑:程序博客网 时间:2024/05/01 12:36
类似的问题:
ArrayList继承了AbstractList为何还要实现List接口?
HashMap继承了AbstractMap为何还要实现Map接口?
HashSet继承了AbstractSet为何还要实现Set接口?
今天无意中看到Vector的源码,发现Vector继承了AbstractList(抽象类,implement了List接口),同时Vector实现了List接口。代码如下
public class Vectorextends AbstractListimplements List, RandomAccess, Cloneable, java.io.Serializable
想了好久都没想明白为什么要这么做?问了几个同事,也没有好的解释。
于是,上网搜索,有说是因为classs.getinterfaces()会返回不同的结果的,有说是为了可阅读的,也有说为了以后可维护性的。。。但是想想这些解释都不那么让人性福。
终于,在StackOverflow上找到了答案:it was a mistake。只是当初JDK的作者犯的一个错,他当时以为这样会有用。
详情:<a href="http://stackoverflow.com/questions/2165204/why-does-linkedhashsete-extend-hashsete-and-implement-sete">http://stackoverflow.com/questions/2165204/why-does-linkedhashsete-extend-hashsete-and-implement-sete</a>
其中第一个回复,是来自google的员工Kevin Bourrillion,他自称问过java collection的作者Josh,并且得到了上述答案。
呵呵,这个问题的最终答案确实很有意思。
扩展问题:
Hashtable为什么继承了Dictionary并且实现了Map接口?但是Dictionary却没有实现Map接口?
答案是因为在java1.2之前,是没有Map接口的,只有Hashtable,后来在1.2中,引入java collection之后,重写了Hashtable,让其实现Map接口。
这也就是为什么JDK的源码中会存在不一致的代码风格的原因,一句话,历史原因。O(∩_∩)O~
- Vector既然继承了AbstractList为啥还要实现List接口
- Vector既然继承了AbstractList为啥还要实现List接口
- ArrayList既然继承自AbstractList抽象类,而AbstractList已经实现了List接口,那么ArrayList类为何还要再实现List接口呢?
- HashMap既然继承了AbstractMap为什么还要实现Map
- 为什么HashMap继承了AbstractMap还要实现Map接口
- 既然有了点方法为啥还要用valueForKey
- 为什么在集合框架中已经继承了抽象类还要实现接口
- 既然设置了ARC,为什么还要使用@autoreleasepool
- 既然设置了ARC,为什么还要使用@autoreleasepool
- List接口实现类(3):Vector
- List接口实现类(4):Vector
- Java nio 的Channel接口继承了Closeable,为什么还要有close() 方法
- A:LinkedList实现了List接口; B: AbstractSet实现了Set接口; C: HashSet继承自AbstractSet基类; D: WeakMap继承自 AbstractMap
- Java有了继承,为什么还要接口
- 既然有http 请求,为什么还要用rpc(dubbo接口)调用?
- [翻译]List为什么实现了那么多接口?
- 既然有ERP, 为什么还要有MES?
- [note] 既然 typedef, 为何还要使用 define?
- VC中PC/SC智能卡接口的编程
- 精品android源码汇总。。欢迎关注,持续更新。
- 使用innobackupex备份mysql数据库
- 走过的路——2014暑假
- C语言标准
- Vector既然继承了AbstractList为啥还要实现List接口
- ContentProvider详细介绍
- 自学大数据:Hive基于搜狗搜索的用户日志行为分析
- swing生成图片之动画播放
- RFID卡写卡程序
- lamda表达式
- class批量反编译
- poj1077-不作此题人生不完整~经典搜索题
- 浅析ORACLE ERP系统维护方法