LONGEPASS
Q145.

Java 程式f() 執行後,以下那些輸出描述正確?電腦軟體設計(JAVA) 乙級 Java 第 145 題 題目 第一張圖片 電腦軟體設計(JAVA) 乙級 Java 第 145 題 題目 第二張圖片 電腦軟體設計(JAVA) 乙級 Java 第 145 題 題目 第三張圖片 電腦軟體設計(JAVA) 乙級 Java 第 145 題 題目 第四張圖片 電腦軟體設計(JAVA) 乙級 Java 第 145 題 題目 第五張圖片

電腦軟體設計(JAVA) · 乙級 · Java · Q145

難易度分析

4 / 5

本題涉及多型與動態繫結的複雜應用,且為複選題型,要求對多個程式片段的執行結果進行精確判別,增加了分析量與邏輯推論的難度。

正確答案 (複選):②, ④

  • ② (B)那一行印出A,B:此描述正確。程式碼中標示為 (B) 的那一行,依據 動態繫結 (Dynamic Binding) 原理,物件的實際型別決定了呼叫哪個類別的方法實作,因此正確印出 `A, B`。
  • ④ (C)那一行印出A,B:此描述正確。標示為 (C) 的那一行,根據 多型與方法解析 規則,兩個輸出分別來自不同物件型別的方法呼叫,正確結果為印出 `A, B`。

錯誤選項解析

  • ① 那一行印出 A, BB:此描述錯誤。在 Java 多型 機制中,若父類別與子類別的方法涉及 方法覆寫 (Method Overriding),實際呼叫的是物件執行時型別對應的方法版本,不會同時印出 `A` 與 `BB` 這種混合輸出。
  • ③ (C)那一行印出B,B:此描述錯誤。標示為 (C) 的那一行不會印出 `B, B`。由於涉及 繼承架構下的方法呼叫,第一個輸出通常來自父類別或被呼叫物件的型別,應為 `A` 而非 `B`。
Learning Tip

"此類題型常考 Java 多型 (Polymorphism) 與 動態繫結 的觀念。重點在於區分 編譯時期型別 與 執行時期型別:方法呼叫實際執行的是物件建立時 (`new`) 的類別版本,而非參考變數宣告的型別。另外需注意 方法多載 (Overloading) 與 方法覆寫 (Overriding) 的差異,前者在編譯期決定,後者在執行期決定,此為檢定考試的高頻混淆考點。"

學員答題分佈

①那一行印出 A, BB0%
②(B)那一行印出A,B0%
③(C)那一行印出B,B0%
④(C)那一行印出A,B0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目