基于C#的接口基礎(chǔ)教程之五(5)
2007/1/9 20:57:27
4、映射接口
 
    類必須為在基類表中列出的所有接口的成員提供具體的實(shí)現(xiàn)。在類中定位接口成員的實(shí)現(xiàn)稱之為接口映射(interface mapping )。
 
    映射,數(shù)學(xué)上表示一一對(duì)應(yīng)的函數(shù)關(guān)系。接口映射的含義也是一樣,接口通過類來實(shí)現(xiàn),那么對(duì)于在接口中定義的每一個(gè)成員,都應(yīng)該對(duì)應(yīng)著類的一個(gè)成員來為它提供具體的實(shí)現(xiàn)。
 
    類的成員及其所映射的接口成員之間必須滿足下列條件:
 
    1、如果A和B都是成員方法,那么A和B的名稱、類型、形參表(包括參數(shù)個(gè)數(shù)和每一個(gè)參數(shù)的類型)都應(yīng)該是一致的。
 
    2、如果A和B都是屬性,那么A和B的名稱、類型應(yīng)當(dāng)一致,而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執(zhí)行體,A允許增加自己的訪問器。
 
    3、如果A和B都是時(shí)間那么A和B的名稱、類型應(yīng)當(dāng)一致。
 
    4、如果A和B都是索引指示器,那么A和B的類型、形參表(包括參數(shù)個(gè)數(shù)和每一個(gè)參數(shù)的類型)應(yīng)當(dāng)一致。而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執(zhí)行體,A允許增加自己的訪問器。
 
    那么,對(duì)于一個(gè)接口成員,怎樣確定由哪一個(gè)類的成員來實(shí)現(xiàn)呢?即一個(gè)接口成員映射的是哪一個(gè)類的成員?在這里,我們敘述一下接口映射的過程。假設(shè)類C實(shí)現(xiàn)了一個(gè)接口IInterface,Member是接口IInterface中的一個(gè)成員,在定位由誰來實(shí)現(xiàn)接口成員Member,即Member的映射過程是這樣的:
 
    1、如果C中存在著一個(gè)顯式接口成員執(zhí)行體,該執(zhí)行體與接口IInterface 及其成員Member相對(duì)應(yīng),則由它來實(shí)現(xiàn)Member 成員。
 
    2、如果條件(1)不滿足,且C中存在著一個(gè)非靜態(tài)的公有成員,該成員與接口成員Member相對(duì)應(yīng),則由它來實(shí)現(xiàn)Member 成員。
 
    3、如果上述條件仍不滿足,則在類C定義的基類列表中尋找一個(gè)C 的基類D,用D來代替C。
 
    4、重復(fù)步驟1-- 3 ,遍歷C的所有直接基類和非直接基類,直到找到一個(gè)滿足條件的類的成員。
 
    5、如果仍然沒有找到,則報(bào)告錯(cuò)誤。
 
    下面是一個(gè)調(diào)用基類方法來實(shí)現(xiàn)接口成員的例子。類Class2 實(shí)現(xiàn)了接口Interface1,類Class2 的基類Class1 的成員也參與了接口的映射,也就是說類Class2 在對(duì)接口Interface1進(jìn)行實(shí)現(xiàn)時(shí),使用了類Class1提供的成員方法F來實(shí)現(xiàn)接口Interface1的成員方法F:
 
  interface Interface1 {
   void F( ) ;
  }
  class Class1 {
   public void F( ) { }
   public void G( ) { }
  }
  class Class2: Class1, Interface1 {
   new public void G( ) {}
  }
 
    注意:接口的成員包括它自己定義的成員,而且包括該接口所有父接口定義的成員。在接口映射時(shí),不僅要對(duì)接口定義體中顯式定義的所有成員進(jìn)行映射,而且要對(duì)隱式地從父接口那里繼承來的所有接口成員進(jìn)行映射。

返回列表
返回首頁 主站蜘蛛池模板: 欧美亚洲国产日韩| 一本加勒比hezyo东京re高清| 男人让女人爽30分钟免费| 国产区视频在线观看| 2022天天躁夜夜躁西| 日本高清二三四本2021第九页| 免费一级毛片清高播放| 色婷婷免费视频| 国内揄拍国内精品| 一级毛片免费不卡| 欧美丰满大乳高跟鞋| 亚洲精品欧美日本中文字幕| 青青国产成人久久激情91麻豆| 好男人资源在线观看好| 久久久久88色偷偷| 欧美精品第一页| 免费专区丝袜脚调教视频| 老司机精品久久| 国产伦精品一区二区三区视频小说 | 亚洲色图欧美在线| 韩国三级hd中文字幕| 大地资源在线资源官网| 久久亚洲精品无码观看不卡| 欧美bbbbb| 免费女人18毛片a级毛片视频| 99福利在线观看| 天天做天天添婷婷我也去| 久久受www免费人成_看片中文| 漂亮女教师被浣肠| 全免费a级毛片免费看无码| 老头天天吃我奶躁我的视频| 国产免费全部免费观看| 成年美女黄网站色| 国产精品一区二区久久不卡| 一区二区三区午夜| 成人精品一区二区激情| 丰满少妇高潮惨叫久久久| 日本免费人成视频播放| 久久天天躁狠狠躁夜夜| 朝鲜女人大白屁股ASS孕交| 亚洲视频一区网站|