国产探花免费观看_亚洲丰满少妇自慰呻吟_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] 下一頁

菜鳥學堂:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保靖县| 任丘市| 景德镇市| 白城市| 曲水县| 紫阳县| 陕西省| 临夏县| 建昌县| 隆子县| 寻乌县| 临武县| 芦溪县| 柘城县| 武鸣县| 新化县| 周口市| 敦化市| 砀山县| 含山县| 共和县| 灵山县| 武平县| 屏边| 大化| 曲阳县| 清流县| 宁津县| 房产| 濮阳县| 石泉县| 辛集市| 东丽区| 香格里拉县| 丰顺县| 乌兰察布市| 界首市| 民乐县| 资溪县| 玉树县| 大庆市|