将一个超类的对象强制转换为一个子类对象,在运行时系统会产生ClassCastException异常,
但是超类对象有时候是可以转换为子类对象的,请问什么情况下可以转转成功呢?谢谢大家了

解决方案 »

  1.   

    ClassCastException异常 
    类型不对吧对象类型和你定义的用来存放对象的容器类型不一致!
      

  2.   


    public class Test {    public static void main(String[] args) {
            Super s1 = new Super();
            Super s2 = new Derived();
            Derived d1 = (Derived) s1;  //运行出错
            Derived d2 = (Derived) s2;  //正确,因为s2指向的实际对象就是Derived类型的
        }
    }class Super {
    }class Derived extends Super {
    }
      

  3.   

    但是超类对象有时候是可以转换为子类对象的,请问什么情况下可以转转成功呢?你只有先把一个子类对象转化成超类对象,才可以把超类对象转化成子类.
    struts的那个ActionForm就是最好的例子.