國家安全情報人員考試五等考試-資訊組資料處理大意104 年第 36 題單選題
下列何者不是物件導向程式(Object-Oriented Programming)的主要特色?
A遞迴(Recursion)正確答案
B封裝(Encapsulation)
C繼承(Inheritance)
D多形(Polymorphism)
A正確答案
物件導向三大特色為封裝、繼承、多形,遞迴是函式呼叫自己屬於一般程式設計技巧。
為什麼答案是 A
遞迴是函式自我呼叫的程式設計技巧,與 OOP 無直接關聯,任何程式語言(含非 OOP)都可使用遞迴,故非 OOP 特色。
載入中…
完整詳解
Pro · 無限重點 物件導向三大特色為封裝、繼承、多形,遞迴是函式呼叫自己屬於一般程式設計技巧。
背口訣「封繼多」(封裝、繼承、多型)三大 OOP 特色,其他都不是。
逐選項分析
A✓ 正確
遞迴是函式自我呼叫的程式設計技巧,與 OOP 無直接關聯,任何程式語言(含非 OOP)都可使用遞迴,故非 OOP 特色。
B✕
封裝是將資料與方法包裝在類別內,透過存取控制(public/private)隱藏內部實作細節,是 OOP 三大特色之一。
C✕
繼承讓子類別可以承襲父類別的屬性與方法,達到程式碼重用,是 OOP 三大特色之一。
D✕
多形指同一介面在不同物件上有不同行為表現(如方法覆寫、多載),是 OOP 三大特色之一。
OOP 三大特色 vs 遞迴
| 概念 | 定義 | 屬於 OOP? | 範例 |
|---|
| 封裝 Encapsulation | 資料與方法包裝並隱藏細節 | ✅ 是 | private 變數 + getter/setter |
| 繼承 Inheritance | 子類別承襲父類別 | ✅ 是 | Dog extends Animal |
| 多形 Polymorphism | 同介面不同行為 | ✅ 是 | 方法覆寫 Override |
| 遞迴 Recursion | 函式呼叫自己 | ❌ 否(通用技巧) | 費氏數列、階乘 |
遞迴聽起來很「進階」容易誤以為是 OOP 特色,但遞迴是一種「函式呼叫自己」的流程控制技巧,C 語言(非 OOP)也能用。OOP 特色要記「封繼多」三字口訣。