介面包含類或結構可以實現的一組相關功能的定義例如,使用介面可以在類中包括來自多個源的行為。由於C#語言不支援多重繼承,但是可以通過介面來實現多重繼承 。簡言之,介面只包含了成員(屬性、事件、索引器)的聲明。成員的定義具體怎麼實現由他的衍生類別決定。
聲明一個介面:
介面使用interface 關鍵字聲明,它與類的聲明類似。介面聲明預設是 public 的,介面不能包含常量、欄位、運算子、執行個體建構函式、解構函式或類型。介面成員會自動成為公用成員,不能包含任何存取修飾詞。 成員也不能是靜態成員。例如:
public interface person //定義一個介面
{ void setname();} //聲明一個方法
一個介面的執行個體:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test1 {//定義一個person介面 public interface person {//只聲明方法 void setname(string name); void setsex(char sex); void setage(uint age); void getinformation(); } //people繼承於person class people:person { private string name; private char sex; private uint age; //實現介面中的方法 public void setname(string name) { this.name = name; } public void setsex(char sex) { this.sex = sex; } public void setage(uint age) { this.age = age; } public void getinformation() { Console.WriteLine("姓名:\t"+name); Console.WriteLine("性別:\t"+sex); Console.WriteLine("年齡:\t"+age); } } //多重繼承 class student :people,person { } class Program { static void Main(string[] args) { people peo = new people(); peo.setname("HC666"); peo.setsex('男'); peo.setage(18); peo.getinformation(); student stu = new student(); stu.setname("HC555"); stu.setsex('男'); stu.setage(19); stu.getinformation(); } } }
結果:
我這個介面好像沒有什麼作用哦,如果去掉一樣能夠運行,
如果我們從設計的角度來看.一個項目中用若干個類需要去編寫,由於這些類比較複雜,工作量比較大,這樣每個類就需要佔用一個工作人員進行編寫.比如A程式員去定Dog類,B程式員去寫Cat類.這兩個類本來沒什麼聯絡的,可是由於使用者需要他們都實現一個關於"叫"的方法.這就要對他們進行一種約束.讓他們都繼承於IBark介面,目的是方便統一管理.另一個是方便調用.當然了,不使用介面一樣可以達到目的.只不過這樣的話,這種約束就不那麼明顯,如果這樣類還有Duck類等等,比較多的時候難免有人會漏掉這樣方法.所以說還是通過介面更可靠一些,約束力更強一些.
以上就是 C#學習日記26---介面(interface)類型的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!