基於C 的介面基礎教程 7

2021-04-02 19:22:52 字數 694 閱讀 4014

第七節、覆蓋虛介面

有時候我們需要表達一種抽象的東西,它是一些東西的概括,但我們又不能真正的看到它成為乙個實體在我們眼前出現,為此物件導向的程式語言便有了抽象類的概念。c#作為乙個物件導向的語言,必然也會引入抽象類這一概念。介面和抽象類使您可以建立元件互動的定義。通過介面,可以指定元件必須實現的方法,但不實際指定如何實現方法。抽象類使您可以建立行為的定義,同時提供用於繼承類的一些公共實現。對於在元件中實現多型行為,介面和抽象類都是很有用的工具。  

乙個抽象類必須為類的基本類列表中列出的介面的所有成員提供實現程式。但是,乙個抽象類被允許把介面方法對映到抽象方法中。例如

inte***ce imethods 

abstract class c: imethods

這裡, imethods 的實現函式把f和g對映到抽象方法中,它們必須在從c派生的非抽象類中被覆蓋。

注意顯式介面成員實現函式不能是抽象的,但是顯式介面成員實現函式當然可以呼叫抽象方法。例如

inte***ce imethods

abstract class c: imethods

void imethods.g() 

protected abstract void ff();

protected abstract void gg();

} 這裡,從c派生的非抽象類要覆蓋ff 和 gg, 因此提供了imethods的實際實現程式。

基於c 的介面基礎教程

說明 1 c 中的介面是獨立於類來定義的。這和 c 模型是對立的,在 c 中介面實際上就是抽象基類。2 介面和類都能繼承多個介面。3 而類能繼承乙個基類,介面根本不能繼承類。這種模型避免了 c 的多繼承問題,c 中不同基類中的實現可能出現衝突。因此也不再需要諸如虛擬繼承和顯式作用域這類複雜機制。c ...

基於C 的介面基礎教程 3

第三節 定義介面成員 介面可以包含乙個和多個成員,這些成員可以是方法 屬性 索引指示器和事件,但不能是常量 域 操作符 建構函式或析構函式,而且不能包含任何靜態成員。介面定義建立新的定義空間,並且介面定義直 接包含的介面成員定義將新成員引入該定義空間。說明 1 介面的成員是從基介面繼承的成員和由介面...

基於C 的介面基礎教程之七

inte ceimethods abstractclassc imethods 這裡,imethods的實現函式把f和g對映到抽象方法中,它們必須在從c派生的非抽象類中被覆蓋。注意顯式介面成員實現函式不能是抽象的,但是顯式介面成員實現函式當然可以呼叫抽象方法。例如 inte ceimethods a...