class P {
void a() {
System.out.println("a");
}
void b() {
System.out.println("b");
}
}
class C extends P {
void c() {
System.out.println("c");
}
}
class run {
public static void main(String[] args) {
C c = new C();
P p =(C) c; // or P p =(P) c;
p.a();
}
}
在上面的代码中,我试图提供明确的演员,但我不知道哪一个是正确的。
要么:
P p = (C) c;
或者这个:
P p = (P) c;
编译并运行正常。
答案 0 :(得分:4)
P p = c;
根本不要施放。 C
是P
;不需要显式转换。没有强制转换,您可以清楚地知道此操作不会失败;通过演员表,您强制读者考虑并放弃c
不是P
实例的可能性。