首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

接口的實現(三)

     編輯:關於C語言

15.4.3 接口映射

類必須為基類列表所有接口成員提供實現。定位類成員實現接口成員稱接口映射,即一一對應函數關係。

類成員與接口成員映射條件:

  • 方法:名稱、類型、參數表 (個數/類型) 一致
  • 屬性:名稱、類型一致,存取器類似;非顯式實現可增存取器
  • 事件:名稱、類型一致
  • 索引器:類型、參數表一致,存取器類似;非顯式實現可增存取器

映射尋找過程 (類 C 實現 IInterface,成員 Member):

  1. C 有對應顯式接口成員執行體 → 用它
  2. 否,C 有對應非靜態公有成員 → 用它
  3. 否,在基類列表找基類 D 替代 C
  4. 重複 1-3 遍歷所有直系/非直系基類
  5. 仍無 → 報錯

範例:Class2 : Class1, Interface1 用 Class1.F 實現 Interface1.F。

注意:接口成員含自身聲明 + 所有父接口成員,映射必須覆蓋全部。兩優先規則:

  • 顯式接口成員優先於其他成員
  • private/protected/static 成員不參與映射

範例:ICloneable.Clone 顯式實現優先於公有 Clone。多接口同名方法可共享一實現 (如 Page : IControl, IForm 共用 Paint),或分別顯式實現。但若接口繼承中覆蓋父成員,則必須映射到顯式執行體。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved