c 介面,抽象類學習

2021-09-11 07:01:52 字數 2787 閱讀 8549

說明

介面可以包含方法、屬性、索引器、和事件作為成員,但是並不能設定這些成員的具體值。也就是說,只能定義,不能那個給他裡面定義的東西賦值。

介面具有以下特性。

c#中宣告介面時,使用inte***ce關鍵字

修飾符 inte***ce 介面名稱:繼承的介面列表

{ 介面內容;

說明

1.宣告介面時,除inte***ce關鍵字和介面名稱外,其他都是可選項。

2.可以使用new、public、protected、internal和private等修飾符宣告介面,但介面成員必須是公共的。

常見的訪問修飾符有:

(1)public 公有訪問。不受任何限制。

(2)private 私有訪問。只限於本類成員訪問,子類。

(3)protected 保護訪問。只限於本類和子類訪問。

(4)internal 內部訪問。只限於本專案內訪問,其他不能訪問。

(5)protected internal 內部保護訪問。只限於本專案或是子類訪問,其他不能訪問

介面定義:

inte***ce imyinte***ce//再三強調,介面中只能宣告,不能給定義賦值

string name

void showinfo();//不能給函式寫任何內容

}class program:imyinte***ce//program類繼承介面,需要對介面裡的內容全部進行定義,否則編譯就會不通過

set

}public string name

set

}public void showinfo()

}

主函式:

static void main(string args)

執行結果:

編號     姓名

tm c#3.5從入門到應用開發

mck 2018

上面的例項中只繼承了乙個介面,介面還可以多重繼承,使用多重繼承時,要繼承的介面間用逗號(,)分隔。

介面宣告:

inte***ce ipeople

string ***

}inte***ce istudent:ipeople

inte***ce iteacher:ipeople

class program:ipeople,istudent,iteacher

set

}public string ***

set

}public void teach()

public void study()

}

主函式:

static void main(string args)

執行結果:

mck man 老師 

mck man 學生

顯式介面成員實現是使用介面名稱和乙個句點命名該類成員實現的。

inte***ce ipeople

string ***

}inte***ce istudent:ipeople

inte***ce iteacher:ipeople

class program:ipeople,istudent,iteacher

set

}public string ***

set

}public void teach()

void istudent.study()//顯式介面方法,只能是isudentd的物件使用

void iteacher.study()//顯式介面方法,只能是iteacher的物件使用

}

static void main(string args)

注意

1.顯式介面成員實現中不能包含訪問修飾符、abstract、virtual、override或static修飾符。

2.顯式介面成員屬於介面的成員,而不是類的成員,因此,不能使用類的物件直接訪問,只能通過介面物件訪問。

如果乙個類不與具體的事物相聯絡,而只是表達一種抽象的概念,僅僅是作為其派生類的乙個基類,這樣的類就是抽象類。在抽象類中宣告方法時,如果加上abstract關鍵字,則為抽象方法。

抽象類和非抽象類的區別:

訪問修飾符 abstract class myclass

{ public int i;

public void method()

{}}

抽象方法就是在宣告方法時,加上abstract關鍵字,宣告抽象方法時需要注意:

抽象方法不提供任何實際實現,因此抽象方法的方法體只包含乙個分號;

當從抽象類派生乙個非抽象類時,需要在非抽象類中重寫抽象的方法,以提供具體實現,重寫抽象方法時使用override關鍵字。

例:宣告乙個抽象類,裡面有乙個抽象方法

public abstract class myclass

{ public abstract void method();//抽象方法

C 介面(抽象類)

介面描述了類的行為和功能,而不需要完成類的特定實現。c 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 0 來指定的,如下所示 class box 設計抽象類...

C 介面(抽象類)

介面描述了類的行為和功能,而不需要完成類的特定實現。c 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 0 來指定的,如下所示 class box 設計抽象類...

C 介面(抽象類)

設計抽象類 通常稱為 abc 的目的,是為了給其他類提供乙個可以繼承的適當的基類。抽象類不能被用於例項化物件,它只能作為介面使用。如果試圖例項化乙個抽象類的物件,會導致編譯錯誤。因此,如果乙個 abc 的子類需要被例項化,則必須實現每個虛函式,這也意味著 c 支援使用 abc 宣告介面。如果沒有在派...