LONGEPASS
Q42.

下列何者可以修正以下Java 程式碼的錯誤?電腦軟體設計(JAVA) 乙級 Java 第 42 題 題目 圖片

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

難易度分析

2 / 5

本題考查對 Java 類別與方法修飾符之間邏輯一致性的理解。需分辨編譯錯誤的根本原因是否與類別定義的屬性相符,而非被存取權限或語法細節等干擾選項誤導。

正確答案:④加入abstract 於class 宣告的前面

④ 加入abstract 於class 宣告的前面:當類別中包含 abstract 抽象方法時,該類別必須宣告為 abstract class。在 class 宣告前加入 abstract 關鍵字可解決編譯錯誤,因為 Java 規定含有抽象方法的類別必須是抽象類別。

錯誤選項解析

  • ① 移除return(x+5);的():在 Java 中,return 陳述句的括號 () 是選擇性的,移除並不會解決編譯錯誤。`return (x+5);` 與 `return x+5;` 語法皆合法,問題不在於此。
  • ② 移除setCode method 的abstract:移除 `setCode` method 的 abstract 關鍵字會將其變為一般方法,但若類別仍宣告為 abstract 且未實作該方法,仍會產生編譯錯誤。正確做法是實作抽象方法或將類別宣告為 abstract。
  • ③ 將protected 更正為public:存取修飾子 (protected/public) 的修改與抽象方法的編譯錯誤無關。將 protected 改為 public 不會解決包含抽象方法的具體類別所產生的編譯問題。
Learning Tip

"此題考點為 Java 抽象類別 (abstract class) 的宣告規則。常考陷阱:① 含有 abstract method 的類別必須宣告為 abstract class;② abstract class 不可被實體化,必須由子類別繼承並實作所有抽象方法;③ 抽象方法不能有方法本體(即無大括號 {})。實務上設計 Template Method 設計模式時常運用此特性。"

學員答題分佈

①移除return(x+5);的()0%
②移除setCode method 的abstract0%
③將protected 更正為public0%
④加入abstract 於class 宣告的前面0%

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

相似類型題目