我们有以下代码:
我们有这个指示:
mySub = (SubClass) mySuper;
对我而言,这看起来像是一个合法的转换,但它给出了ClassCastException。为什么这样?
答案 0 :(得分:0)
来自Oracle Docs ..
抛出以指示代码已尝试将对象强制转换为不是实例的子类。例如,以下代码生成ClassCastException:
Object x = new Integer(0);
System.out.println((String)x);
Eg: Object x = new Integer(0); //works fine
String s = (String)x; //Will raise an exception here as Object
is not a subclass of String.