十一、接口(接口的概念,實現,繼承,實現)、抽象類與抽象方法(抽象類,抽象方法概念,使用)
阿新 • • 發佈:2017-10-28
輸出 重寫 關鍵字 new clas main ride ring strac
接口
接口是一種用來定義程序的協議,它描述可屬於任何類和結構的一組相關行為。
接口可由方法、屬性、事件和索引器這四種成員類型的任何組合構成,但不能包含字段。
接口通過類繼承來實現,一個類雖然只能繼承一個基類,但可以繼承任意接口。
聲明實現接口的類時,需在基類列表中包含類所實現的接口的名稱。
抽象類和抽象方法
如果一個類不與具體的事物相關聯,而只是表達一種抽象的概念,僅僅是作為其派生類的一個基類,這樣的類就是抽象類。
在抽象類中聲明方法時,如果加上abstract關鍵字,則為抽象方法。
抽象類主要用來提供多個派生類可共享的基類的公共定義,他與非抽象類的主要區別有:
抽象類不能直接實例化。抽象類中可包含抽象成員,但非抽象類中不可以。抽象類不能被密封。
C#聲明抽象類要使用abstract關鍵字,具體格式為:訪問修飾符 abstract class 類名 :基類或接口{//類成員}
聲明抽象方法要註意兩點:抽象方法必須聲明在抽象類中。聲明抽象方法時,不能使用virtual、static和private修飾符
//抽象類與抽象方法的使用 public abstract class myClass { private string id=""; private string name=""; public string ID //編號屬性及實現 { get{return id;}set{id=value;} } public string Name //姓名屬性及實現 { get{return name;} set{name=value;} } public abstract void ShowInfo();//抽象方法,用來輸出信息 } public class DriveClass:myClass //繼承抽象類 { public override void ShowInfo() //重寫抽象類中輸出信息的方法 { Console.WriteLine(ID+""+Name); } } class Program { static void Main(string[] args) { DriveClass driveclass=new DriveClass(); //實例化派生類 myClass myclass=driveclass //使用派生類對象實例化抽象類 myclass.ID="BH001";//使用抽象類對象訪問抽象類中的編號屬性 myclass.Name="TM";//使用抽象類對象訪問抽象類中的姓名屬性 myclass.ShowInfo;//使用抽象類對象調用派生類中的方法 } }
運行結果為BH001 TM
十一、接口(接口的概念,實現,繼承,實現)、抽象類與抽象方法(抽象類,抽象方法概念,使用)