全面剖析c 介面程式設計之定義介面

2021-09-08 02:18:30 字數 2030 閱讀 7538

定義介面成員

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

說明:

· 介面的成員是從基介面繼承的成員和由介面本身定義的成員。

· 介面定義可以定義零個或多個成員。介面的成員必須是方法、屬性、事件或索引器。介面不能包含常數、字段、運算子、例項建構函式、析構函式或型別,也不能包含任何種類的靜態成員。

· 定義乙個介面,該介面對於每種可能種類的成員都包含乙個:方法、屬性、事件和索引器。

· 介面成員預設訪問方式是public。介面成員定義不能包含任何修飾符,比如成員定義前不能加abstract,public,protected,internal,private,virtual,override 或static 修飾符。

· 介面的成員之間不能相互同名。繼承而來的成員不用再定義,但介面可以定義與繼承而來的成員同名的成員,這時我們說介面成員覆蓋了繼承而來的成員,這不會導致錯誤,但編譯器會給出乙個警告。關閉警告提示的方式是在成員定義前加上乙個new關鍵字。但如果沒有覆蓋父介面中的成員,使用new關鍵字會導致編譯器發出警告。

· 方法的名稱必須與同一介面中定義的所有屬性和事件的名稱不同。此外,方法的簽名必須與同一介面中定義的所有其他方法的簽名不同。

· 屬性或事件的名稱必須與同一介面中定義的所有其他成員的名稱不同。

· 乙個索引器的簽名必須區別於在同一介面中定義的其他所有索引器的簽名。

· 介面方法宣告中的屬性(attributes), 返回型別(return-type), 識別符號(identifier)和形式引數列表(formal-parameter-lis)與乙個類的方法宣告中的那些有相同的意義。乙個介面方法宣告不允許指定乙個方法主體,而宣告通常用乙個分號結束。

· 介面屬性宣告的訪問符與類屬性宣告的訪問符相對應,除了訪問符主體通常必須用分號。因此,無論屬性是讀寫、唯讀或只寫,訪問符都完全確定。

· 介面索引宣告中的屬性(attributes),型別(type)和形式引數列表(formal-parameter-list)與類的索引宣告的那些有相同的意義。

下面例子中介面imytest包含了索引指示器、事件e、方法f、屬性p這些成員:

inte***ce imytest

event eventhandler e ;

void f(int value) ;

string p

}public delegate void eventhandler(object sender, eventargs e) ;

下面例子中介面istringlist包含每個可能型別成員的介面:乙個方法,乙個屬性,乙個事件和乙個索引。

public delegate void stringlistevent(istringlist sender);

public inte***ce istringlist

event stringlistevent changed;

string this[int index]

}

介面成員的全權名

使用介面成員也可採用全權名(fully qualified name)。介面的全權名稱是這樣構成的。介面名加小圓點"." 再跟成員名比如對於下面兩個介面:

inte***ce icontrol 

inte***ce itextbox: icontrol

其中paint 的全權名是icontrol.paint,gettext的全權名是itextbox. gettext。當然,全權名中的成員名稱必須是在介面中已經定義過的,比如使用itextbox.paint.就是不合理的。

如果介面是名字空間的成員,全權名還必須包含名字空間的名稱。

namespace system

}

那麼clone方法的全權名是system. idatatable.clone。

全面剖析C 介面程式設計之覆蓋虛介面

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

全面剖析C 介面程式設計之實現介面 (2)

重新實現介面 我們已經介紹過,派生類可以對基類中已經定義的成員方法進行過載。類似的概念引入到類對介面 的實現中來,叫做介面的重實現 re implementation 繼承了介面實現的類可以對介面進行重實現。這個介面要求是在類定義的基類列表中出 現過的。對介面的重實現也必須嚴格地遵守首次實現介面的規...

C 程式設計之介面

1.定義 介面是把公共方法和屬性組合起來,以封裝特定功能的乙個集合。一旦定義了介面,就可以在類中實現它。這樣類就可以支援介面所指定的所有屬性和成員 注意1 介面不能單獨存在。不能像例項化乙個類那樣例項化乙個介面。另外介面不能包含實現其成員的任何 只能定義成員本身。實現過程必須在實現介面的類中實現。注...