人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

c#中的接口

c#中的接口

更新時間:2022-07-12 文章作者:未知 信息來源:網絡 閱讀次數:

C#中的接口

目錄

接口的定義

接口與抽象類

接口的的實現

接口的的多態性

一.接口的定義

定義:定義一個協定。實現接口的類或結構必須遵守其協定。

簡單的說就是接口或者類之間交互時遵守的一個顯示定義。最初接觸“類與類之間通過接口交互”這個概念時,誤以為接口就是類公開的方法,類之間通過類的方法進行交互。其實接口是獨立于類的一個定義。接口定義類之間交互的標準。

那么類與類之間直接交互就好了,為什么還要使用接口呢?

這主要是因為:接口是類之間交互內容的一個抽象,把類之間需要交互的內容抽象出來定義成接口,可以更好的控制類之間的邏輯交互。可見接口內容的抽象好壞關系到整個程序的邏輯質量;另外可以在任何時候通過開發附加接口和實現來添加新的功能;

關于接口一個很重要的概念:接口只包含成員定義,不包含成員的實現,成員的實現需要在繼承的類或者結構中實現。

接口的成員包括:方法,特性,索引器,事件。

注意:接口不包含字段。

實現接口的類必須嚴格按其定義來實現接口的每個方面

接口本身一旦被發布就不能再更改,對已發布的接口進行更改會破壞現有的代碼。

一個典型的接口示例:

using System;

using System.Colletion;

public delegate voic Chang(object sender,object event)//定義一個委托

public interface Ibroker //定義一個股票經濟人接口

{

string GetRating (string stock);//一個獲得金額的方法(此處沒有實現)

decimal pricePerTrade //定義一個設置每股價格的特性

{

get; //沒有實現的

set;

}

decimal this(string StockName) //定義索引器

{

get;

set;

}

event Change pricechange; //定義接口的事件

}



二.接口與抽象類

抽象類和接口在定義上和功能上有很多相似的地方,具體在程序中使用抽象類還是接口需要比較抽象類和接口的具體差別。

抽象類:一種不能實例化而必須從中繼承的類,抽象類可以提供實現,也可以不提供實現

子類只能從一個抽象類繼承

抽象類應主要用于關系密切的對象

如果要設計大的功能單元,則使用抽象類。

如果預計要創建組件的多個版本,則創建抽象類



接口:是完全抽象的成員集合,不提供認識實現。

類或者結構可以繼承幾個接口。

接口最適合為不相關的類提供通用功能

如果要設計小而簡練的功能塊,則使用接口

接口一旦創建就不能更改。如果需要接口的新版本,必須創建一個全新的接口

三.接口的的實現

接口的實現分為:隱式實現和顯式實現。如果類或者結構要實現的是單個接口,可以使用隱式實現,如果類或者結構繼承了多個接口那么接口中相同名稱成員就要顯示實現。顯示實現是通過使用接口的完全限定名來實現接口成員的。

針對上面的例子 我們可以這樣實現接口:

public class testInterface: Ibroker //定義一個繼承ibroker接口的類

{

hashtable hash=new hashtable();

decimal pricepertrade;

public testInterface(decimal price) // 構造函數

{

pricepertrade=price ; //初始化字符串

}

public string Getrating (string stock) //隱式實現接口的方法

{

return “buy”;

}

public decimal Ibroker.pricepertrade // 顯式實現接口的特性

{

get

{

return pricepertrade;

}

set

{

pricepertrade=value;

pricechange(“Finacebroker”,value);

}



public decimal this(string stockName)

{

get

{

return (decimal)Hash[stockName];

}

set

{

hash.add(stockname,value);

}

}

}

public event changer pricechange;//接口中的所有成員都要實現

}

四.接口中的多態

多個類繼承了相同的接口就實現了接口的多態性,接口的多態性的訪問和類的多態性訪問一樣。下面的例子說明怎么實現接口的多態性訪問:

public class InterfaceTester

{

public stratic int Main (string[] args)

{

string recommendation;

Arraylist Brokers=new Arraylist;//定義一個列表

Brokers.add(new firstBroker(7.21m));//添加第一個繼承接口的類

Brokers.add(new secondBroker(12.3m));// 添加第二個繼承接口的類

InterfacetTester new Iftst=new InterfacetTester

Foreach (Ibroker broker in Brokers)

{

broker.pricechange+=new change(iftst.pricepertradechange);

broker[“adc”]=12.33m;

broker[“rty”]=11.23ml

broker.pricepertrade=12.55m;

}

}

}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 双城市| 高清| 青岛市| 永平县| 临清市| 德阳市| 象州县| 驻马店市| 浏阳市| 阿鲁科尔沁旗| 淮南市| 西贡区| 内江市| 宁武县| 青龙| 高唐县| 兴宁市| 保定市| 崇州市| 克什克腾旗| 墨玉县| 金平| 莆田市| 商水县| 三亚市| 油尖旺区| 东丽区| 四子王旗| 南乐县| 夏津县| 安吉县| 五原县| 木里| 西和县| 河池市| 来安县| 宿州市| 丘北县| 东阿县| 腾冲县| 铜山县|