天天看點

C#顯示接口實作和隐式接口實作

C#顯示接口實作和隐式接口實作

在項目中可能會遇到顯示接口實作和隐式接口實作。什麼意思呢?簡單來說使用接口名作為方法名的字首,這稱為“顯式接口實作”;傳統的實作方式,稱為“隐式接口實作”。隐式接口實作如下:

C#顯示接口實作和隐式接口實作

interface ISkill
{
  void Flying();
}

//隐式實作ISkill接口
public class Bird: ISkill
{
  public void Flying()
    {            
    }
}      
C#顯示接口實作和隐式接口實作

我們在隐式實作接口下可以這樣調用:

  

C#顯示接口實作和隐式接口實作
1 //第一種調用方式
2 Bird bird = new Bird();
3 bird.Flying();
4 
5 //第二種調用方式
6  ISkill secondBrid = new Bird();
7  secondBrid.Flying();      
C#顯示接口實作和隐式接口實作

直接用類和接口都可以調用Flying方法。

顯示接口實作如下:

C#顯示接口實作和隐式接口實作
interface ISkill
{
     void Flying();
}

public class Bird : ISkill
{
       //方法名稱為接口名.方法名
      void ISkill.Flying()
      {          
      }
}      
C#顯示接口實作和隐式接口實作
ISkill secondBrid = new Bird();
secondBrid.Flying();      
Bird bird = new Bird();
bird.Flying();      
  1. 當類實作一個接口時,通常使用隐式接口實作,這樣可以友善的通路接口方法和類自身具有的方法和屬性。
  2. 當類實作多個接口時,并且接口中包含相同的方法簽名,此時使用顯式接口實作。即使沒有相同的方法簽名,仍推薦使用顯式接口,因為可以辨別出哪個方法屬于哪個接口。
  3. 隐式接口實作,類和接口都可通路接口中方法。顯式接口實作,隻能通過接口通路。
上一篇: 冒泡排序
下一篇: c# 接口實作