LONGEPASS
Q73.

以下Java 程式執行完後,輸出結果為何?電腦軟體設計(JAVA) 乙級 Java 第 73 題 題目 圖片

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

難易度分析

3 / 5

本題要求考生同時理解抽象類別的實例化限制與多型機制中的動態方法分派,需精確區分參考型別與實際物件型別的差異,且選項中包含多個關於編譯錯誤的邏輯陷阱,增加了判別難度。

正確答案:②12.0

② 12.0:正確答案。程式利用動態方法分派(Dynamic Method Dispatch)呼叫子類別覆寫的方法多型(Method Overriding),計算矩形面積(如 3×4=12.0),故輸出為 12.0。

錯誤選項解析

  • ① 無法編譯,因為Shapes 物件不是Rectangle 類別:此選項誤解了 Java 的多型(Polymorphism)機制。父類別參考可指向子類別物件,透過向上轉型(Upcasting),`Shapes` 型別的變數完全可以引用 `Rectangle` 物件實體。
  • ③ 無法編譯,因為Shapes 類別設定為abstract 而無法產生Rectangle 物件:此選項混淆了 抽象類別(Abstract Class) 的使用規則。`abstract` 類別本身不可直接 `new`,但可作為子類別物件的參考型別,`new Rectangle()` 是合法的具體子類別實例化。
  • ④ 0:此選項忽略了子類別 `Rectangle` 已覆寫(Override) 父類別的抽象方法,實際執行的是子類別中定義的面積計算邏輯,而非預設回傳 0。
Learning Tip

"本題核心考點為 Java 的抽象類別繼承與執行時期多型。常考陷阱在於混淆「抽象類別不可直接實例化」與「抽象類別可作為子類別參考型別」兩者的差異。實務上,`abstract` 類別用於定義共同介面與行為規範,具體實作由子類別完成,呼叫時透過動態繫結(Dynamic Binding) 自動執行子類別的覆寫方法。"

學員答題分佈

①無法編譯,因為Shapes 物件不是Rectangle 類別0%
②12.00%
③無法編譯,因為Shapes 類別設定為abstract 而無法產生Rectangle 物件0%
④00%

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

相似類型題目