日期:2014-05-20 浏览次数:20745 次
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 { }
------解决方案--------------------
但是超类对象有时候是可以转换为子类对象的,请问什么情况下可以转转成功呢?
你只有先把一个子类对象转化成超类对象,才可以把超类对象转化成子类.
struts的那个ActionForm就是最好的例子.
------解决方案--------------------
3楼的正确,要结合多态使用