國家安全情報人員考試五等考試-資訊組資料處理大意112 年第 17 題單選題
有關物件導向程式語言特性的敘述,下列何者錯誤?
A要使用運算子多載(Overload)必須先設計繼承類別架構正確答案
B若類別中的資料可視性設計為保護型(Protected),其子類別的物件具有存取權限
C類別中的封裝(Encapsulation)特性,可以把資料和功能包裝在類別物件中
D抽象(Abstract)類別一般無法產生實體物件
A正確答案
運算子多載屬於多型的一種,與繼承架構無必然關係,可獨立實作。
為什麼答案是 A
運算子多載(Overload)屬於「多型」特性,只需在同一類別中定義多個同名運算子或函式即可,不需要繼承架構。題目問錯誤者,故選 A。
載入中…
完整詳解
Pro · 無限重點 運算子多載屬於多型的一種,與繼承架構無必然關係,可獨立實作。
看到「必須先...才能...」這種絕對化敘述,通常就是錯的選項!
逐選項分析
A✓ 正確
運算子多載(Overload)屬於「多型」特性,只需在同一類別中定義多個同名運算子或函式即可,不需要繼承架構。題目問錯誤者,故選 A。
B✕
Protected 成員的設計就是給子類別存取用的:外部無法存取,但子類別可以。此敘述正確。
C✕
封裝(Encapsulation)正是把資料(屬性)與功能(方法)包在類別物件中,並透過存取修飾子控制外部存取,敘述正確。
D✕
抽象類別含有未實作的抽象方法,無法直接 new 出實體物件,必須由子類別繼承並實作後才能產生物件,敘述正確。
物件導向四大特性速記
| 特性 | 中文 | 核心概念 | 範例 |
|---|
| Encapsulation | 封裝 | 資料與方法包在類別中 | private 變數 + getter/setter |
| Inheritance | 繼承 | 子類別繼承父類別成員 | class Dog extends Animal |
| Polymorphism | 多型 | 同名不同行為(含多載/覆寫) | Overload、Override |
| Abstraction | 抽象 | 只定義介面不實作細節 | abstract class、interface |
考選部最愛把「多載(Overload)」和「覆寫(Override)」混淆!多載在單一類別內就能做,完全不需繼承;需要繼承的是 Override。選項 A 故意把這兩個綁在一起騙你。