在父类里面有个 Vector v;
并且v里面已经存入了一系列的数据
子类继承了父类,为什么子类里的v是空的呢
子类要用父类的v要怎么用呢?

解决方案 »

  1.   

    基本的代码是这样的
    class VectorDemo

       Vector v=new Vector();
       v=...//存入一些数据进去;
    }
    class Test extends VectorDemo
    {
        System.out.println(v.size())//显示0,就是说这个v是空的。
    }
      

  2.   

    import java.util.Vector;
    class Base
    {
    protected Vector v;
    public Base()
    {
    v=new Vector();
    v.add(new Integer(1));
    v.add(new Integer(2));
    }
    }class JustTest extends Base
    {
    public void display()
    {
    for(int i=0; i<this.v.size(); i++)
    {
    System.out.println (((Integer)v.get(i)).toString());
    }
    }
    public static void main(String args[])
    {
    JustTest test=new JustTest();
    test.display();
    }
    }
    没有问题啊,子类可以使用父类的v啊!
      

  3.   

    import java.util.*;public class VectorTest extends VectorBase{
    public static void out(Vector v){
    Iterator iter = v.iterator();
    while(iter.hasNext()){
    String s = (String)iter.next();
    System.out.println(s);
    }
    }
    public static void main(String[] args){
    VectorTest vectorTest = new VectorTest();
    out(vectorTest.v);
    }
    }class VectorBase{
    Vector v;
    public VectorBase(){
    v = new Vector();
    v.add("Mark");
    v.add("Alan");
    v.add("Gary");
    v.add("Autumn");
    }
    }
    子类的确继承了父类的数据结构和存储数据。请楼主再检查一下是否是代码错误
      

  4.   

    jdk是不是1.5 如果是
    试下用
    Vector<Integer> v;
    v = new Vector<Integer>();来初始化入数据直接入
    v.add(1);v.add(2);
    这样
    看看会不会再出问题
      

  5.   

    在子类的构造方法中调用super();
      

  6.   

    你的子类中没有构造方法。并且,在子类的构造方法中不会自动调用父类的构造方法,你要调用super();
      

  7.   

    Dan1980(不用IDE的大傻瓜) 兄:
    以你高见,当今时代都用什么?那为什么sun还把java.util.Vector留着?
      

  8.   

    to 楼上:Vector, Stack, Hashtable 这些类都是java1.0/1.1的遗留产物,本身设计上存在相当多的问题,连Sun都不推荐使用它们了。除非你一定要与老的代码兼容,否则不要使用。要使用Vector时,考虑ArrayList;
    要使用Stack时,考虑LinkedList;
    要使用Hashtable时,考虑HashMap。