LONGEPASS
Q70.

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

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

難易度分析

3 / 5

本題要求考生對 Java 類別定義的語法規範有精確掌握,需能區分抽象類別的實體化限制與方法宣告規則之間的差異,並能從多個編譯錯誤可能的選項中辨識出正確的語法失效原因。

正確答案:④無法編譯,因為Instrument 類別的play()方法沒有設定為abstract

④ 無法編譯,因為Instrument 類別的play()方法沒有設定為abstract:當 抽象類別中包含沒有方法本體的方法宣告時,該方法必須以 abstract 關鍵字修飾,否則編譯器會因語法錯誤而無法通過編譯。

錯誤選項解析

  • ① 無法編譯,因為Instrument物件不是Brass 類別:多型機制允許父類別型態的參考變數指向子類別物件,因此 Instrument 參考變數指向 Brass 物件是合法的向上轉型,並非無法編譯的原因。
  • ② BrassPlay:此選項假設程式可正常執行並輸出 BrassPlay,但實際上程式存在編譯錯誤,根本無法執行到輸出階段。
  • ③ 無法編譯,因為Instrument 類別設定為abstract:抽象類別本身可以被宣告為參考變數的型態,這符合 Java 的多型原則,抽象類別不能直接 new 實體但可作為型態宣告使用。
Learning Tip

"本題核心考點為 抽象類別與抽象方法的宣告規則。在 Java 中,抽象類別可包含具體方法(有實作)與抽象方法(無實作),但任何只有宣告沒有實作的方法都必須加上 `abstract` 修飾。常見陷阱是混淆「抽象類別不能實體化」與「抽象方法必須標示 abstract」這兩個獨立規則,實務上應注意抽象方法用於強制子類別覆寫的設計目的。"

學員答題分佈

①無法編譯,因為Instrument物件不是Brass 類別0%
②BrassPlay0%
③無法編譯,因為Instrument 類別設定為abstract0%
④無法編譯,因為Instrument 類別的play()方法沒有設定為abstract0%

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

相似類型題目