日期:2014-05-20 浏览次数:20942 次
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楼的正确,要结合多态使用