class Base {}
class Sub extends Base {}
class Sub2 extends Base {}public class Test9{
public static void main(String argv[]){
Base b = new Base();
Sub s = (Sub) b; //编译通过, 运行异常
}
}
编译通过
运行异常:
Exception in thread "main" java.lang.ClassCastException: Base
为什么
class Sub extends Base {}
class Sub2 extends Base {}public class Test9{
public static void main(String argv[]){
Base b = new Base();
Sub s = (Sub) b; //编译通过, 运行异常
}
}
编译通过
运行异常:
Exception in thread "main" java.lang.ClassCastException: Base
为什么
Sub s = (Sub) b;
Base b=(Base)s;
就可以
这句话字面上就类型转换错误。
原因是你Sub s = (Sub) b;
把老爸强制转成儿子了。儿子怎么可能是老子呢 呵呵
Sub s = (Sub) b;