1. 程式人生 > >十一、接口(接口的概念,實現,繼承,實現)、抽象類與抽象方法(抽象類,抽象方法概念,使用)

十一、接口(接口的概念,實現,繼承,實現)、抽象類與抽象方法(抽象類,抽象方法概念,使用)

輸出 重寫 關鍵字 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

十一、接口(接口的概念,實現,繼承,實現)、抽象類與抽象方法(抽象類,抽象方法概念,使用)