基于C#的接口基礎教程之五(6)
2007/1/9 20:58:09
在進行接口映射時,還要注意下面兩點:
1、在決定由類中的哪個成員來實現接口成員時,類中顯式說明的接口成員比其它成員優先實現。
2、使用Private、protected和static修飾符的成員不能參與實現接口映射。例如:
interface ICloneable {
object Clone( ) ;
}
class C: ICloneable {
object ICloneable.Clone( ) {…}
public object Clone( ) {…}
}
例子中成員ICloneable.Clone 稱為接口ICloneable 的成員Clone 的實現者,因為它是顯式說明的接口成員,比其它成員有著更高的優先權。
如果一個類實現了兩個或兩個以上名字、類型和參數類型都相同的接口,那么類中的一個成員就可能實現所有這些接口成員:
interface IControl {
void Paint( ) ;
}
interface IForm {
void Paint( ) ;
}
class Page: IControl, IForm {
public void Paint( ) {…}
}
這里,接口IControl和IForm的方法Paint都映射到了類Page中的Paint方法。當然也可以分別用顯式的接口成員分別實現這兩個方法:
interface IControl {
void Paint( ) ;
}
interface IForm {
void Paint( ) ;
}
class Page: IControl, IForm {
public void IControl.Paint( ) {
//具體的接口實現代碼
}
public void IForm.Paint( ) {
//具體的接口實現代碼
}
}
上面的兩種寫法都是正確的。但是如果接口成員在繼承中覆蓋了父接口的成員,那么對該接口成員的實現就可能必須映射到顯式接口成員執行體。看下面的例子:
interface IBase {
int P { get; }
}
interface IDerived: IBase {
new int P( ) ;
}
接口IDerived從接口IBase中繼承,這時接口IDerived 的成員方法覆蓋了父接口的成員方法。因為這時存在著同名的兩個接口成員,那么對這兩個接口成員的實現如果不采用顯式接口成員執行體,編譯器將無法分辨接口映射。所以,如果某個類要實現接口IDerived,在類中必須至少定義一個顯式接口成員執行體。采用下面這些寫法都是合理的:
//一:對兩個接口成員都采用顯式接口成員執行體來實現
lass C: IDerived {
int IBase.P
get
{ //具體的接口實現代碼 }
int IDerived.P( ){
//具體的接口實現代碼 }
}
//二:對Ibase 的接口成員采用顯式接口成員執行體來實現
class C: IDerived {
int IBase.P
get {//具體的接口實現代碼}
public int P( ){
//具體的接口實現代碼 }
}
//三:對IDerived 的接口成員采用顯式接口成員執行體來實現
class C: IDerived{
public int P
get {//具體的接口實現代碼}
int IDerived.P( ){
//具體的接口實現代碼}
}
另一種情況是,如果一個類實現了多個接口,這些接口又擁有同一個父接口,這個父接口只允許被實現一次。
using System ;
interface IControl {
void Paint( ) ;
interface ITextBox: IControl {
void SetText(string text) ;
}
interface IListBox: IControl {
void SetItems(string[] items) ;
}
class ComboBox: IControl, ITextBox, IListBox {
void IControl.Paint( ) {…}
void ITextBox.SetText(string text) {…}
void IListBox.SetItems(string[] items) {…}
}
上面的例子中,類ComboBox實現了三個接口:IControl,ITextBox和IListBox。如果認為ComboBox不僅實現了IControl接口,而且在實現ITextBo
下一頁
返回列表
返回首頁
主站蜘蛛池模板:
欧美激情性xxxxx|
青青国产精品视频|
女女女女BBBBBB毛片在线|
久久综合久久久|
欧美疯狂性受xxxxx另类|
免费观看激色视频网站bd|
草逼视频免费看|
国产成人综合日韩精品婷婷九月|
亚洲国产理论片在线播放|
门国产乱子视频观看|
国产精品久久久久久无毒不卡|
久久99热只有频精品8|
正在播放国产伦理片|
国产免费内射又粗又爽密桃视频|
在线精品91青草国产在线观看|
日本www高清|
亚洲欧美精品一中文字幕|
里番acg全彩本子同人视频
|
又粗又猛又黄又爽无遮挡|
免费福利在线观看|
女子校生下媚药在线观看|
中文字幕在线观看第二页|
日韩AV高清在线看片|
亚洲精品tv久久久久久久久|
精品久久久无码中文字幕|
国产男女性潮高清免费网站|
一级毛片视频播放|
欧日韩在线不卡视频|
免费特级黄毛片|
羞耻暴露办公室调教play视频|
国产成人免费ā片在线观看老同学|
jizzjizz国产精品久久|
最新国产乱人伦偷精品免费网站|
亚洲日本欧美日韩精品|
精品欧美军人同性videos|
国产精品中文久久久久久久|
91精品国产色综合久久不卡蜜|
天堂中文字幕在线|
一个人hd高清在线观看|
成人做受120视频试看|
亚洲av永久无码精品水牛影视|