LONGEPASS
Q64.

以下Java 程式執行後,何者輸出正確?電腦軟體設計(JAVA) 乙級 Java 第 64 題 題目 圖片

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

難易度分析

2 / 5

本題考查 Java 的多型機制與執行期動態綁定。需分析物件在宣告型別與實際實體型別不同時,方法呼叫的優先順序,屬於基本程式邏輯推演。

正確答案:①AB

① AB:程式建立 Object[] 陣列,依序放入 `new A()` 與 `new B()`。呼叫 `print(o[0])` 時會觸發 A 類別的 toString() 回傳 "A",接著 `print(o[1])` 觸發 B 類別的 toString() 回傳 "B",故輸出為 AB。

錯誤選項解析

  • ② BA:輸出 "BA" 表示順序顛倒,但程式中陣列索引 0 存放的是 A 物件、索引 1 存放的是 B 物件,執行順序並非相反。
  • ③ AA:輸出 "AA" 表示兩個物件皆回傳 "A",但 `o[1]` 實際上是 B 類別的實體,其 toString() 回傳的是 "B" 而非 "A"。
  • ④ BB:輸出 "BB" 表示兩個物件皆回傳 "B",但 `o[0]` 實際上是 A 類別的實體,其 toString() 回傳的是 "A" 而非 "B"。
Learning Tip

"此題考 Java 多型與 toString() 方法的呼叫機制。當物件被放入 Object 型別陣列時,執行期仍會根據實際物件型別(runtime type)動態綁定呼叫對應的 toString()。常考陷阱為混淆宣告型別與實際型別,需記住 Java 採用動態分派(dynamic dispatch)機制。"

學員答題分佈

①AB0%
②BA0%
③AA0%
④BB0%

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

相似類型題目