SCJP題庫第086題
10. abstract class A{
11. abstract void a1();
12. void a2(){}
13. }
14. class B extends A{
15. void a1(){}
16. void a2(){}
17. }
18. class C extends B{void c1(){}}
and:
A x = new B(); C y = new C(); A z = new C();
What are four valid examples of polymorphic (需為多型) method calls?
(Choose four.)
A. x.a2();
B. z.a2();
C. z.c1();
D. z.a1();
E. y.c1();
F. x.a1();
Ans: ABDF
解說:
此題問那四個是有效的多形叫用
C不行是因為若為多形,方法必須在父類別中宣告,在子類別覆載之,c1方法不是一個覆載的方法
E不行也是因為c1非多形的叫用形式
Comments
z 的實體不是C類別嗎? 而 C類別中也有 c1方法,雖然我試過編譯確實是不會過,但是還是不懂原因.....