(aa)a;
只要你原来存在里面的数据是aa类的实例,那就没有问题,数据还是会有的

解决方案 »

  1.   

    最好不要这样,这样明显意味着你的类设计不符合Liskov替换原则,考虑重新设计一下吧
      

  2.   

    to: llshnshd(申)这样是不行的,子类对象的数据在(a)aa类对象时已经丢失了。Polarislee(北极星):
    的确,你说得很对,哎。
      

  3.   

    aa时a的子类,
    我把aa转换到a类,存储到数组中
    当我想使用的时候,在把数组中的对象转换到aa类型,数据还是没有呀
      

  4.   

    要想这样的话,a必须是aa的父类了
      

  5.   

    aa是a的子类
    把aa转换到a类(其实不用转换,转换了也不会丢数据),存储到数组中
    使用的时候,在把数组中的对象转换到aa类型看我的代码,我是按照你的说法做的,有数据
    把你的代码也贴出来吧class A {
    public int a = 0; public void getA(){
    System.out.println("===== class A.a = " + a);
    }
    }class B extends A{
    private int b = 1; public void getB(){
    System.out.println("===== class B.b = " + b);
    }
    }public class test extends A{ public static void main(String[] args){
    A[] t = new A[2];
    t[0] = new A();
    t[1] = new B();
    B b = (B)t[1];
    b.getA();
    b.getB();
    }
    }