民國112年 第2梯次 電腦軟體設計(C++)乙級 學科

第4題

關於物件導向語言覆寫(Overriding) Function/Method 的敘述,以下何者正確?

題目

關於物件導向語言覆寫(Overriding) Function/Method 的敘述,以下何者正確?

  1. (1) 基礎類別和導出類別Function/Method 有不同數量和型態的參數
  2. (2) 基礎類別和導出類別的Function/Method 同名,也有相同數量和型態的參數
  3. (3) 基礎類別和導出類別的Function/Method 同名,但有不同的可視性修飾子(Visibility Modifiers)
  4. (4) 基礎類別和導出類別的Function/Method 同名,有不同的回傳值資料型態

官方答案

(2) 基礎類別和導出類別的Function/Method 同名,也有相同數量和型態的參數

解析

覆寫(Overriding)是指導出類別重新定義基礎類別中的虛擬函式,條件是函式名稱、參數個數與參數型態完全相同,編譯器才能透過動態繫結呼叫到導出類別的版本。參數不同者屬於多載(Overloading);只改變回傳型態不構成覆寫,C++ 要求回傳型態相同,或是相容的共變型態;可視性修飾子可以調整,但不是構成覆寫的判準。因此第二項正確。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料