国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

基于C#的接口基礎教程之五

2024-07-21 02:30:13
字體:
來源:轉載
供稿:網友

  第五節、實現接口

  1、顯式實現接口成員

  為了實現接口,類可以定義顯式接口成員執行體(explicit interface member implementations)。顯式接口成員執行體可以是一個方法、一個屬性、一個事件或者是一個索引指示器的定義,定義與該成員對應的全權名應保持一致。

using system ;
interface icloneable {
 object clone( ) ;
}
interface icomparable {
 int compareto(object other) ;
}
class listentry: icloneable, icomparable {
 object icloneable.clone( ) {…}
 int icomparable.compareto(object other) {…}
}

  上面的代碼中icloneable.clone 和icomparable.compareto 就是顯式接口成員執行體。

  說明:

  1、不能在方法調用、屬性訪問以及索引指示器訪問中通過全權名訪問顯式接口成員執行體。事實上,顯式接口成員執行體只能通過接口的實例,僅僅引用接口的成員名稱來訪問。

  2、顯式接口成員執行體不能使用任何訪問限制符,也不能加上abstract, virtual, override或static 修飾符。

  3、顯式接口成員執行體和其他成員有著不同的訪問方式。因為不能在方法調用、屬性訪問以及索引指示器訪問中通過全權名訪問,顯式接口成員執行體在某種意義上是私有的。但它們又可以通過接口的實例訪問,也具有一定的公有性質。

  4、只有類在定義時,把接口名寫在了基類列表中,而且類中定義的全權名、類型和返回類型都與顯式接口成員執行體完全一致時,顯式接口成員執行體才是有效的,例如:

class shape: icloneable {
object icloneable.clone( ) {…}
int icomparable.compareto(object other) {…}
}
  使用顯式接口成員執行體通常有兩個目的:

  1、因為顯式接口成員執行體不能通過類的實例進行訪問,這就可以從公有接口中把接口的實現部分單獨分離開。如果一個類只在內部使用該接口,而類的使用者不會直接使用到該接口,這種顯式接口成員執行體就可以起到作用。

  2、顯式接口成員執行體避免了接口成員之間因為同名而發生混淆。如果一個類希望對名稱和返回類型相同的接口成員采用不同的實現方式,這就必須要使用到顯式接口成員執行體。如果沒有顯式接口成員執行體,那么對于名稱和返回類型不同的接口成員,類也無法進行實現。

  下面的定義是無效的,因為shape 定義時基類列表中沒有出現接口icomparable。

class shape: icloneable
{
object icloneable.clone( ) {…}
}
class ellipse: shape
{
object icloneable.clone( ) {…}
}

共7頁: 上一頁 1 [2] [3] [4] [5] [6] [7] 下一頁

菜鳥學堂:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴桥县| 兴和县| 大姚县| 饶河县| 东丽区| 班玛县| 普定县| 莱阳市| 尼玛县| 西乌珠穆沁旗| 夏河县| 栖霞市| 尉氏县| 浦北县| 蒲江县| 红河县| 盐边县| 多伦县| 三台县| 榆树市| 汾西县| 崇州市| 称多县| 伊金霍洛旗| 西昌市| 宁强县| 石景山区| 云梦县| 台南市| 云和县| 莲花县| 柞水县| 临夏市| 林芝县| 梧州市| 额济纳旗| 留坝县| 阿勒泰市| 微山县| 雅安市| 册亨县|