LONGEPASS
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 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目