转换变量,不确定它为什么会产生ClassCastException

时间:2015-01-23 07:18:12

标签: inheritance casting

我们有以下代码:

enter image description here

我们有这个指示:

mySub = (SubClass) mySuper;

对我而言,这看起来像是一个合法的转换,但它给出了ClassCastException。为什么这样?

1 个答案:

答案 0 :(得分:0)

ClassCastException

来自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.