民國114年 第2梯次 電腦軟體設計(JAVA)乙級 學科
第27題
以下Java 程式執行完後,輸出結果為何?
題目
以下Java 程式執行完後,輸出結果為何?
- (1) 0.0
- (2) 無法編譯,因為Shapes 類別設定為abstract 而無法產生Rectangle 物件
- (3) 無法編譯,因為Rectangle 類別沒有預設建構子
- (4) 無法編譯,因為 Shapes 物件不是Rectangle 類別
官方答案
(3) 無法編譯,因為Rectangle 類別沒有預設建構子
解析
此題考察 Java 抽象類別與建構子規則。Shapes 為 abstract 類別,不能直接實例化,但可被 Rectangle 繼承。選項 2 錯誤:abstract 類別的子類別若非 abstract,可正常產生物件。選項 4 錯誤:多型允許父類別參考指向子類別物件。關鍵在於 Rectangle 若定義了帶參數的建構子,編譯器不會自動提供無參數預設建構子;若主程式嘗試 new Rectangle() 且 Rectangle 無無參數建構子,會導致編譯錯誤。選項 3 正確描述此編譯錯誤原因。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。