總結了一下接口的小優勢,可以便於新手理解為什么要用接口,用接口有什么好處。
1.接口的定義:
關鍵字:interface,接口名一般大寫I開頭,接口中定義方法,但是不實現方法
interface IBark{ void Bark(); }
2.實現接口:
父類名在前,接口名在后,只能繼承一個父類,可以實現多個
interface IBark { void Bark();//接口中字段和方法默認為public } class Dog: IBark { public Dog{ } public void Bark()// 方法聲明必須和接口中的保持一致 { Console.WriteLine("汪汪"); } }
這時我們實例化一個dog
Dog wangcai = new Dog();
wangcai.Brak();
旺財就會汪汪了。
之前我也不明白為什么不直接在Dog類中聲明Bark的方法,IBark接口中並沒有具體的方法,還省略了接口,沒有理解接口的作用。
還有人是這樣說的:從接口的定義方面來說,接口其實就是類和類之間的一種協定,一種約束。還拿上面的例子來說,所有繼承了IBark接口的類中必需實現 Bark()方法,那么從用戶(使用類的用戶)的角度來說,如果他知道了某個類是繼承於IBark接口,那么他就可以放心大膽的調用Bark()方法,而不用管Bark()方法具體是如何實現的。比如,我們另外寫了一個類。
把上面的那個例子擴展,現在需要寫一個貓的類。
public class Cat : IBark { public Cat() { } public void Bark() { Console.WriteLine("喵喵"); }
總結:
我們在寫貓的類的時候,繼承了IBark接口,知道貓類中肯定會有一個Bark方法需要我們去實現。接口的優勢在多個類中就體現出來了。如果一個項目,需要些貓、狗、雞、鴨、多個類,又是由多個人來寫,這些類都需要實現一個Bark的方法,我們就可以使用IBark接口,加強他們之間的約束,方便統一管理也方便調用。
而且如果一個項目中,有c,有c++、JAVA、C#的程序員的時候,使用接口,擴充性特別好。