先看两个类的声明:AbstractList:
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> Vector:
public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
问题:
AbstractList实现了List, Vector 继承了AbstractList,  但为什么Vector声明时还要实现List呢? 这样做有什么好处?

解决方案 »

  1.   

    也没什么好处!就是强制要求Vector对接口List中的方法必须重新实现!
      

  2.   


    说明Vector有List的行为被 
      

  3.   

    从反射的信息来看,2种声明是不同的。
    Vector.class.getInterfaces()会返回包含java.util.List的结果。
    但是如果Vector没有直接声明实现List,getInterfaces()就不包含java.util.List。
      

  4.   

    vector始于jdk1.0 list为1.2
    可能是因为vector类老一点 sun为了不让它消亡让他实现了list接口 
    这样既保证了以前的程序没有问题,又让它有了新的功能吧
    个人理解
      

  5.   

    我觉得,第一:可以方便用List接口实例化Vector对象,要知道AbstractList这个是抽象类,不能实例化对象。(为什么用接口实例化?这是多态性吧)第二:如果以后API发生改变,假设AbstractList不用了,废弃了,也不用修改List接口,对不对?第三:楼主给分