-
public class SuperClass{
-
class SubClassA extends SuperClass{}
-
class SubClassB extends SuperClass{}
-
public void test(SubClassA foo){
-
SuperClass bar=foo;
-
}
-
}
which statement is true about the assignment in line 5?
(6.0分)
A、
The assignment in line 5 is illegal
B、
The assignment in line 5 is legal, but throw a ClassCastException
C、
legal and will always executes without throw an Exception
答案:
C
没有运行错误。也不会抛异常。
foo;是SubClassA类型的。
bar是SuperClass类型的。
而SubClassA是SuperClass的子类,所以左父右子没有错
但要注意,如果左边是子类,右边是父类需要强制转换的。至少不会报语法错误