Q117.
一Java 程式片段如下,執行後下列何者為其輸出?
電腦軟體設計(JAVA) · 乙級 · Java · Q117
難易度分析
3 / 5
此題考查 Java 類別繼承與介面實作的基本語法規範,以及區分編譯期錯誤與執行期錯誤的能力,需精確掌握特定類別定義以判定程式是否能通過編譯。
正確答案:④無法編譯
④ 無法編譯:在 Java 中,Thread 是一個類別而非介面,必須使用 `extends Thread` 來繼承,或使用 `implements Runnable` 來實作。使用 `implements Thread` 會導致編譯器報錯 cannot inherit from final class 或類似錯誤,因此無法編譯。
錯誤選項解析
- ① 印出A:此程式片段因類別 A 錯誤地使用 `implements Thread` 而非 `extends Thread`,導致編譯階段即失敗,根本無法執行到輸出階段。
- ② 印出無限個A:即使程式能執行,`b.run()` 是直接呼叫方法而非透過 `start()` 啟動執行緒,只會執行一次印出 "A",不會產生無限迴圈。
- ③ 可編譯,無法執行:此錯誤屬於 編譯期錯誤 而非執行期錯誤,Java 編譯器會直接拒絕編譯,不會產生 `.class` 檔供 JVM 執行。
Learning Tip
"此題常考 extends 與 implements 的區別:Thread 是類別需用 `extends` 繼承,Runnable 是介面需用 `implements` 實作。實務上建議優先使用 `Runnable` 或 `Callable` 介面,避免直接繼承 Thread 類別,以符合物件導向設計原則。另外需注意 `start()` 與 `run()` 的差異:`start()` 會啟動新執行緒並自動呼叫 `run()`,而直接呼叫 `run()` 僅是在原執行緒中執行一般方法。"
學員答題分佈
①印出A0%
②印出無限個A0%
③可編譯,無法執行0%
④無法編譯0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!