class Person {
}
class Woman extends Person {
}
class Man extends Person {
}
public class Test {
public static void main(String argv[]) {
Person p1= new Man();
Woman w = (Woman) p1;
}
}
当编译和运行下列程序段时,会发生什么?
A. 通过编译和并正常运行。
B. 编译时出现例外。
C. 编译通过,运行时出现例外。
D. 编译不通过
正确答案:C
解析:Person p1= new Man();编译时p1是Person类型的,所以当Woman w = (Woman) p1;强转时不会报错,因为Woman继承Person; 但运行时p1是Man类型的,当强转时不能将一个Man类型的转化为一个Woman 类型的,因为他们是同一级别的