c#中對接口的實現方式有兩種:隱式實現和顯式實現,以前一直沒仔細看過,今天查了些資料,在這裏整理一下。html
隱式實現的例子
interface IChinese { string Speak(); } public class Speaker:IChinese { public string Speak() { return "Chinese"; } }顯示實現的例子
interface IChinese { string Speak(); } public class Speaker:IChinese { string IChinese.Speak() { return "Chinese"; } }顯式實現和隱式實現影響顯示實現的使用,感受小生僻,不太經常使用
顯式實現的客戶端調用,注意類的聲明,只能夠用接口聲明,調用者才能夠能夠獲得調用實例化對象的行爲Speak;c#
Interface IEnglish { string Speak(); } interface IChinese { string Speak(); } public class Speaker:IChinese,IEnglish { string IChinese.Speak() { return "Chinese"; } string IEnglish.Speak() { return "English"; } }Client即可以這樣使用:IChinese cSpeaker = new Speaker(); IEnglish eSpeaker = new Speaker(); Console.WriteLine("chinese speak say {0}", cSpeaker.Speak()); Console.WriteLine("english speak say {0}", eSpeaker.Speak());隱式實現的使用
隱式實現的客戶端調用,注意類的聲明,能夠用接口聲明,也能夠用實現類 Speaker聲明。調用者均可以獲得調用實例化對象的行爲Speak;spa
interface IChinese { string Speak(); } public class Speaker:IChinese { public string Speak() { return "Chinese"; } }Client即可以這樣使用:Speaker cSpeaker = new Speaker(); Console.WriteLine(cSpeaker.Speak());參考:http://www.cnblogs.com/Roping/archive/2009/11/08/1598462.html