Q43.
有關物件導向語言繼承的敘述,以下何者正確?
電腦軟體設計共同科目 · 乙級 · Q43
難易度分析
3 / 5
本題要求考生能精確區分不同程式語言在繼承機制上的特性,特別是類別繼承與介面繼承的差異。由於選項中設計了易於混淆的對照概念,需具備準確的知識記憶才能排除干擾項。
正確答案:④Java 有多重介面繼承
④ Java 有多重介面繼承:Java 允許一個類別實作多個介面(multiple interface inheritance),透過 `implements` 關鍵字達成。此機制讓 Java 能在避免鑽石問題的同時,實現多重繼承的多型效果。
錯誤選項解析
- ① C++有多重介面繼承:C++ 支援的是多重類別繼承(multiple class inheritance),而非多重介面繼承。C++ 語言本身並無正式的「介面」概念,其透過抽象類別或純虛擬函式來模擬介面行為。
- ② Java 有多重類別繼承:Java 不支援多重類別繼承,每個類別只能繼承單一父類別(single inheritance)。此設計是為避免鑽石問題(Diamond Problem)所產生的歧義。
- ③ C 只有單一類別繼承:C 語言是程序導向語言,不具備物件導向特性,因此不支援任何形式的繼承機制。若需模擬類似行為,須透過結構體與函式指標手實作。
Learning Tip
"本題核心考點為各語言對繼承機制的實作差異。常考陷阱在於混淆 C++ 的多重類別繼承 與 Java 的多重介面繼承。需牢記:Java 以「單一類別繼承 + 多重介面實作」取代 C++ 的多重類別繼承,藉此消除鑽石問題的歧義風險。"
學員答題分佈
①C++有多重介面繼承0%
②Java 有多重類別繼承0%
③C 只有單一類別繼承0%
④Java 有多重介面繼承0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!