民國105年 第2梯次 電腦軟體設計(C++)乙級 學科
第59題
有一仿C + + 物件導向語言F u n c t i o n 為p r o t e c t e d : d o u b l e m e t h o d X (…
題目
有一仿C + + 物件導向語言F u n c t i o n 為p r o t e c t e d : d o u b l e m e t h o d X ( i n t x ) { . . . } ; 它可以 被以下那一個覆寫( O v e r r i d e ) ?
- (1) p r o t e c t e d : i n t m e t h o d X ( d o u b l e x ) { . . . } ;
- (2) p r i v a t e : d o u b l e m e t h o d X ( i n t x ) { . . . } ;
- (3) p u b l i c : d o u b l e m e t h o d X ( i n t x ) { . . . } ;
- (4) p u b l i c : d o u b l e m e t h o d X ( d o u b l e x ) { . . . } ;
官方答案
(3) p u b l i c : d o u b l e m e t h o d X ( i n t x ) { . . . } ;
解析
C++ 覆寫規則:1. 函式簽名(名稱、參數型別、const 屬性)必須完全相同。2. 回傳型別必須相同或為共變型別(covariant return type)。3. 存取層級不可比基底版本更嚴格(protected 可被 public 或 protected 覆寫,不可被 private 覆寫)。題目基底為 protected double methodX(int)。選項 3 public double methodX(int) 符合所有規則。選項 1 參數型別不同(構成多載而非覆寫);選項 2 存取層級降為 private 違規;選項 4 參數型別不同。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。