民國114年 第2梯次 電腦軟體設計(JAVA)乙級 學科

第27題

以下Java 程式執行完後,輸出結果為何?

題目

以下Java 程式執行完後,輸出結果為何?

  1. (1) 0.0
  2. (2) 無法編譯,因為Shapes 類別設定為abstract 而無法產生Rectangle 物件
  3. (3) 無法編譯,因為Rectangle 類別沒有預設建構子
  4. (4) 無法編譯,因為 Shapes 物件不是Rectangle 類別

官方答案

(3) 無法編譯,因為Rectangle 類別沒有預設建構子

解析

此題考察 Java 抽象類別與建構子規則。Shapes 為 abstract 類別,不能直接實例化,但可被 Rectangle 繼承。選項 2 錯誤:abstract 類別的子類別若非 abstract,可正常產生物件。選項 4 錯誤:多型允許父類別參考指向子類別物件。關鍵在於 Rectangle 若定義了帶參數的建構子,編譯器不會自動提供無參數預設建構子;若主程式嘗試 new Rectangle() 且 Rectangle 無無參數建構子,會導致編譯錯誤。選項 3 正確描述此編譯錯誤原因。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料