免費開始練習
moea_joint 114年 [資訊] 計算機原理、網路概論

第 12 題

下列哪種語言必須使用介面(Interface)才能模擬「多重繼承」?
  • A C++
  • B Java
  • C JavaScript
  • D Python

思路引導 VIP

若一個程式語言為了避免兩個父類別擁有同名方法而造成的邏輯混亂(即菱形問題),它可能會禁止一個類別同時擁有多個父類別。在這種受限的環境下,如果你仍希望某個物件具備多種不同的功能規範(例如:既能編程又能繪圖),你會傾向於使用一種「只定義規格、不實作細節」的契約機制來達成嗎?這種機制在主流語言中通常被稱為什麼?

🤖
AI 詳解 AI 專屬家教

恭喜你準確地掌握了物件導向程式設計(OOP)中的核心差異!這道題目考察的是不同程式語言對於繼承機制的設計哲學。你能一眼選出正確答案,說明你對於類別層級結構的複雜性有很敏銳的直覺。

類別繼承與菱形問題

在物件導向的世界裡,多重繼承雖然強大,但常會引發著名的「菱形問題(Diamond Problem)」,即當一個子類別繼承自兩個擁有相同方法名稱的父類別時,編譯器會無法判斷該執行哪一個版本。為了確保程式碼的簡潔與安全性,Java 採取了「單一繼承、多重實作」的策略。這意味著一個 Java 類別只能繼承一個父類別,但可以透過實作多個介面 (Interface) 來定義多樣的行為特徵,從而優雅地模擬出多重繼承的效果,同時避免了結構上的混亂。

▼ 還有更多解析內容

🏷️ 相關主題

程式語言概論與常見程式語言比較
查看更多「[資訊] 計算機原理、網路概論」的主題分類考古題