民國112年 第2梯次 電腦軟體設計(C++)乙級 學科
第4題
關於物件導向語言覆寫(Overriding) Function/Method 的敘述,以下何者正確?
題目
關於物件導向語言覆寫(Overriding) Function/Method 的敘述,以下何者正確?
- (1) 基礎類別和導出類別Function/Method 有不同數量和型態的參數
- (2) 基礎類別和導出類別的Function/Method 同名,也有相同數量和型態的參數
- (3) 基礎類別和導出類別的Function/Method 同名,但有不同的可視性修飾子(Visibility Modifiers)
- (4) 基礎類別和導出類別的Function/Method 同名,有不同的回傳值資料型態
官方答案
(2) 基礎類別和導出類別的Function/Method 同名,也有相同數量和型態的參數
解析
覆寫(Overriding)是指導出類別重新定義基礎類別中的虛擬函式,條件是函式名稱、參數個數與參數型態完全相同,編譯器才能透過動態繫結呼叫到導出類別的版本。參數不同者屬於多載(Overloading);只改變回傳型態不構成覆寫,C++ 要求回傳型態相同,或是相容的共變型態;可視性修飾子可以調整,但不是構成覆寫的判準。因此第二項正確。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。