對於許多初學者來說是個很容易迷糊的東西,使用起來很簡單,無非就是定義接口,接口裡麵包含一些屬性、索引器、事件和一些沒有修飾符的方法,也沒有方法的具體實現代碼;然後在類別中繼承該接口,實現該接口中的所有屬性、索引器、事件和方法的具體實現的代碼(其實接口中只能這幾個,一般我們用到的只有屬性和方法所以在這裡我就只跟大家分享其中的一種「方法」)。介面的使用就這麼簡單,只要照著去寫程式碼就行了;但沒有真正認識到接口的作用的人,都會感覺沒有用接口的必要;感覺多此一舉,在沒真正認識到接口的作用時我也是這麼認為的。
微軟不會把多此一舉的東西推出到市場上,哪麼接下來我們就來看看介面的妙處在哪裡。
我們先定義一個介面
public Interface IBase { void ClassPrind(string s); }
再定義一個類別繼承於IBase介面,且實作方法
public class DogClass :IBase { public void ClassPrind(string s) { Console.WriteLine(s); } }
最後我們在Main中呼叫他
class ClassMain { statric void Main(string []args) { IBase base=new DogClass(); base.ClassPrind("小狗"); } }
##1rereee
# #輸出結果小狗 單從上面的程式碼中看起確實多此一舉,我們只要實例化DogClass類別在去呼叫ClassPrind方法就行了,沒必要多定義一個介面。但是如果我們要再寫多一個CatClass類,類別裡也同樣要傳入一個參數輸出的方法呢?不錯我們只要寫多一個類,類裡寫多一個方法就行快的很;但我們在新寫的類中的方法名可能會不一樣,也就是說我們要多一個方法;這還不算什麼,如果這個類別和方法你們專案經理是叫別人寫的話,你將不知道這個方法,我們使用起來就不方便了。但如果我們使用介面就不同了,雖然也還是要寫多一個類別和一個方法;但我們只要把這個類別繼承於接口,再實作他。哪麼不管是誰去新增這個類,我們都能準確的找到他,使用他。 我們來加上CatClass這個類別public class CatClass :IBase { public void ClassPrind(string s) { Console.WriteLine(s); } }再看看呼喚與輸出
class ClassMain { statric void Main(string []args) { IBase base=new DogClass(); base.ClassPrind("小狗"); IBase base=new CatClass(); base.ClassPrind("小猫"); } }輸出結果 小狗 小小小小小小小小小小小小小小小小控制貓從呼叫輸出中我們很明顯的看出我們只要改個類別名稱、改個參數呼叫的結果就是別一個類別中的方法,我們根本就不用去記別人寫的方法名稱是什麼,也不用寫這個類別的人告訴我們這個類別是寫來幹嘛的。這樣我們不管是在團隊專案中,還是在個人專案裡都很容易的擴展、大大提高了工作效率,我們也不用記住哪麼的東西,何樂而不為呢。 ###
以上是介紹C#中的接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!