日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

基于C#的接口基礎(chǔ)教程之五(4)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:基于C#的接口基礎(chǔ)教程之四
  第四節(jié)、訪問接口   對接口成員的訪問   對接口方法的調(diào)用和采用索引指示器訪問的規(guī)則與類中的情況也是相同的。如果底層成員的命名與繼承而來的高層成員一致,那么底層成員將覆蓋同

  但是,當(dāng)一個接口方法被映射到一個類中的虛擬方法,派生類就不可能覆蓋這個虛擬方法并且改變接口的實現(xiàn)函數(shù)。例如,把上面的聲明重新寫為

interface IControl {
void Paint( ) ;
}
class Control: IControl {
public virtual void Paint( ) {...}
}
class TextBox: Control {
public override void Paint( ) {...}
}

  就會看到下面的結(jié)果:

Control c = new Control( ) ;
TextBox t = new TextBox( ) ;
IControl ic = c ;
IControl it = t ;
c.Paint( ) ; // 影響Control.Paint( );
t.Paint( ) ; // 影響TextBox.Paint( );
ic.Paint( ) ; // 影響Control.Paint( );
it.Paint( ) ; // 影響TextBox.Paint( );

  由于顯式接口成員實現(xiàn)程序不能被聲明為虛擬的,就不可能覆蓋一個顯式接口成員實現(xiàn)程序。一個顯式接口成員實現(xiàn)程序調(diào)用另外一個方法是有效的,而另外的那個方法可以被聲明為虛擬的以便讓派生類可以覆蓋它。例如:

interface IControl {
 void Paint( ) ;
}
class Control: IControl {
 void IControl.Paint( ) { PaintControl( ); }
 protected virtual void PaintControl( ) {...}
}
class TextBox: Control {
 protected override void PaintControl( ) {...}
}

  這里,從Control 繼承的類可以通過覆蓋方法PaintControl 來對IControl.Paint 的實現(xiàn)程序進行特殊化。
  3、重新實現(xiàn)接口

  我們已經(jīng)介紹過,派生類可以對基類中已經(jīng)定義的成員方法進行重載。類似的概念引入到類對接口的實現(xiàn)中來,叫做接口的重實現(xiàn)(re-implementation)。繼承了接口實現(xiàn)的類可以對接口進行重實現(xiàn)。這個接口要求是在類定義的基類列表中出現(xiàn)過的。對接口的重實現(xiàn)也必須嚴格地遵守首次實現(xiàn)接口的規(guī)則,派生的接口映射不會對為接口的重實現(xiàn)所建立的接口映射產(chǎn)生任何影響。

  下面的代碼給出了接口重實現(xiàn)的例子:

interface IControl {
 void Paint( ) ;
 class Control: IControl
 void IControl.Paint( ) {…}
 class MyControl: Control, IControl
 public void Paint( ) {}
}

  實際上就是:Control把IControl.Paint映射到了Control.IControl.Paint上,但這并不影響在MyControl中的重實現(xiàn)。在MyControl中的重實現(xiàn)中,IControl.Paint被映射到MyControl.Paint 之上。

分享:基于C#的接口基礎(chǔ)教程之三
  第三節(jié) 定義接口成員   接口可以包含一個和多個成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構(gòu)造函數(shù)或析構(gòu)函數(shù),而且不能包含任何靜態(tài)成員。接口定

來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
相關(guān).Net教程