当编译和运行下列程序段时,会发生什么
class Base{}
class Sub extends Base{}
class Sub2 extends Base{}
public class CEx{
public static void main(String[] args) {
Base b = new Base();
Sub s = (Sub)b;
}
}
A. 编译通过,正常运行
B. 编译错误
C. 编译通过,运行异常
D. 以上都不正确
参考解答
C; b的实际类型为Base,强制转换为Sub类型是会抛出java.lang.ClassCastException异常