C#中的接口(Interface)對於很多初學者來說是個很容易迷糊的東西,使用起來很簡單,無非就是定義接口,接口里面包含一些屬性、索引器、事件和一些沒有修飾符的方法,也沒有方法的具體實現代碼;然后在類中繼承該接口,實現該接口中的所有屬性、索引器、事件和方法的具體實現的代碼(其實接口中只能這幾個,一般我們用到的只有屬性和方法所以在這里我就只跟大家分享其中的一種“方法”)。接口的使用就這么簡單,只要照着去寫代碼就行了;但沒有真正認識到接口的作用的人,都會感覺沒有用接口的必要;感覺多此一舉,在沒真正認識到接口的作用時我也是這么認為的。
微軟不會把多此一舉的東西推出到市場上,哪么接下來我們就來看看接口的妙處在哪里。
我們先定義一個接口
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 bas=new DogClass();
bas.ClassPrind("小狗");
}
}
輸出結果
小狗
單從上面的代碼中看起確實多此一舉,我們只要實例化DogClass類在去調用ClassPrind方法就行了,沒必要多定義一個接口。但是如果我們要再寫多一個CatClass類,類里也同樣要傳入一個參數輸出的方法呢?不錯我們只要寫多一個類,類里寫多一個方法就行快的很;但我們在新寫的類中的方法名可能會不一樣,也就是說我們要多一個方法;這還不算什么,如果這個類和方法你們項目經理是叫別人寫的話,你將不知道這個方法,我們使用起來就不方便了。但如果我們使用接口就不同了,雖然也還是要寫多一個類和一個方法;但我們只要把這個類繼承於接口,再實現他。哪么不管是誰去新增這個類,我們都能准確的找到他,使用他。
我們來加上CatClass這個類
public class CatClass :IBase
{
public void ClassPrind(string s)
{
Console.WriteLine(s);
}
}
再看看調用和輸出
class ClassMain
{
statric void Main(string []args)
{
IBase bas=new DogClass();
bas.ClassPrind("小狗");
IBase bas=new CatClass();
bas.ClassPrind("小貓");
}
}
輸出結果
小狗
小貓
從調用輸出中我們很明顯的看出我們只要改個類名、改個參數調用的結果就是別一個類中的方法,我們根本就不用去記別人寫的方法名是什么,也不用寫這個類的人告訴我們這個類是寫來干嘛的。這樣我們不管是在團隊項目中,還是在個人項目里都很容易的擴展、大大提高了工作效率,我們也不用記住哪么多的東西,何樂而不為呢。
如有不足或寫錯的地方歡迎指正,謝謝!!!!