SCJP 1.6版考題 084

出自 陳富國維基館
於 2013年3月30日 (六) 06:06 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: 11. class Alpha{ 12. public void foo(){System.out.print("Afoo ");} 13. } 14. public class Beta extends Alpha{ 15. public void foo(){System.out.print("Bfoo ");} 16. public s...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋
11. class Alpha{
12.   public void foo(){System.out.print("Afoo ");}
13. }
14. public class Beta extends Alpha{
15.   public void foo(){System.out.print("Bfoo ");}
16.   public static void main(String[] args){
17.     Alpha a = new Beta();
18.     Beta b = (Beta)a;
19.     a.foo();
20.     b.foo();
21.   }
22. }


What is the result?
  A. Afoo Afoo
  B. Afoo Bfoo
  C. Bfoo Afoo
  D. Bfoo Bfoo
  E. Compilation fails.
  F. An exception is thrown at runtime.

解答


Ans: D

解說: a和b皆指向同一個Beta型態的物件,以方法的多形來看都是叫用Beta中的foo方法