初考-統計資料處理大意115 年第 47 題單選題
物件導向程式中,「Operator Overloading(運算子重載)」是屬於下列物件導向概念中的那一項應用?
A抽象(Abstraction)
B封裝(Encapsulation)
C繼承(Inheritance)
D多型(Polymorphism)正確答案
D正確答案
運算子重載讓同一運算子對不同型別有不同行為,是多型的典型應用。
為什麼答案是 D
多型指「同一名稱、不同行為」。運算子重載讓 + 能作用於整數、字串、物件等不同型別,正是編譯時期多型(static polymorphism)的代表。
載入中…
完整詳解
Pro · 無限重點 運算子重載讓同一運算子對不同型別有不同行為,是多型的典型應用。
看到「同名不同行為」就想到 Polymorphism(多型)。重載=Overloading=多型。
逐選項分析
A✕
抽象是把複雜細節隱藏,只呈現必要介面(例:abstract class)。與運算子重載無關。
B✕
封裝是把資料與方法包在類別中,透過存取修飾子(private/public)保護資料。與運算子重載無關。
C✕ 陷阱
繼承是子類別延用父類別屬性與方法。雖然 Overriding(覆寫)常與繼承搭配,但 Overloading(重載)與繼承無必然關係。易混淆!
D✓ 正確
多型指「同一名稱、不同行為」。運算子重載讓 + 能作用於整數、字串、物件等不同型別,正是編譯時期多型(static polymorphism)的代表。
物件導向四大特性速記
| 特性 | 英文 | 核心概念 | 代表應用 |
|---|
| 抽象 | Abstraction | 隱藏細節,呈現介面 | abstract class、interface |
| 封裝 | Encapsulation | 資料與方法包裹保護 | private 變數 + getter/setter |
| 繼承 | Inheritance | 子類延用父類 | extends 關鍵字 |
| 多型 | Polymorphism | 同名不同行為 | Overloading、Overriding |
Overloading(重載)與 Overriding(覆寫)中文發音相近、概念不同。兩者都是多型的實現方式,但 Overriding 需要繼承,Overloading 不需要。考題若問「與繼承有關的多型」才選 C,單純問運算子重載一律選 D。