2009年2月24日 星期二

第199題

Given
:
10. interface A{void x();}
11. class B implements A{public void x(){} public void y(){}}
12. class C extends B{public void x(){}}
And:
20. java.util.List<> list = new java.util.ArrayList<>();
21. list.add(new B());
22. list.add(new C());
23. for(A a : list){
24. a.x();
25. a.y();
26. }
What is the result?
A. The code runs with no output.
B. An exception is thrown at runtime.
C. Compilation fails because of an error in line 20.
D. Compilation fails because of an error in line 21.
E. Compilation fails because of an error in line 23.
F. Compilation fails because of an error in line 25.
答案:F
參考:7-9 多型、12-4-5 List集合

--------------------------------------

20行建立一個List, 泛型

21,22 加入B 跟 C 元素. (B 實作A, C繼承B. 所以是A的子類別, 並在加入時自動轉型為A).
25. a.y(); 因 a 在23行宣告為 A. 所以會去找 interface A底下的y(). 並沒有此方法.

沒有留言:

張貼留言