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

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

C#中的接口

2024-07-21 02:18:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
接口把一組公共方法和屬性組合起來(lái) ,以封裝特定功能的一個(gè)集合。通過(guò)類可以實(shí)現(xiàn)接口,這樣類就支持接口所有的屬性和方法。
接口只能對(duì)方法和屬性進(jìn)行定義,不能實(shí)現(xiàn),只能由支持它的類實(shí)現(xiàn)。接口中的成員不能用訪問(wèn)符修飾,如public,private,它的成員默認(rèn)為public
定義接口比較簡(jiǎn) 單
public interface imyinterface
{
void dosomething();//方法成員
int myattribute//屬性成員
{
get;//這里只能定義這個(gè)屬性是否為只讀
set;
}
}
接口和抽象類比較相似,但一個(gè)類只能派生于一個(gè)抽象類,不過(guò)可以實(shí)現(xiàn)n個(gè)接口。


舉個(gè)例子來(lái)說(shuō)明一下。
有兩個(gè)抽象類,car和train,,汽車和火車
下面還有許多類,比如公交車,卡車等都派生于汽車
客車,貨車都派生于火車
在car,train中公別定義了汽車與火車的一 些主要特性。
自然的,它們的派生類就擁有這樣的特性,
但是汽車下的公交車,火車下的客車都可以乘載客人,所以這兩個(gè)類可以共同實(shí)現(xiàn)一個(gè)擁有乘載客人功能的接口,而卡車與貨車可以共同實(shí)現(xiàn)一個(gè)擁有運(yùn)載貨物的接口。


一個(gè)類支持一個(gè)接品,就必須實(shí)現(xiàn)它所有的成員
interface imyinterface
{
void dosomething();
void doelsething();
}
class myclass:imyinterface
{
void imyinterface.dosomething()
{
console.writeline("1");
}
public virtual void doelsethiing()
{

console.writeline("2");
}

}
class myclass2:myclass
{
public override void doelsething()
{
console.writelint(“3“);
}
}


上面定義了一個(gè)接口imyinterface, myclass實(shí)現(xiàn)了這個(gè)接口, 這樣,派生于myclass的類myclass2也就默認(rèn)的支持這個(gè)接口,也繼承了對(duì)方法的實(shí)現(xiàn),在myclass2中,還可以對(duì)doelsething方法進(jìn)行重寫(xiě)。
但這是有前提的。那就是doelsething方法是由myclass類隱式實(shí)現(xiàn)的。隱式實(shí)現(xiàn)只須匹配方法返回值和方法簽名即可。這樣的方 法,可以使用關(guān)健字vritual 和 abstract來(lái)修飾,而且可以用類的實(shí)例類調(diào)用
class obj=new myclass();
obj.doelsethiing();

而第一個(gè)方法dosomething是顯式執(zhí)行的。它只能由接口的引用變量來(lái)調(diào)用。而且派生類不會(huì)繼承這個(gè)方法的實(shí)現(xiàn),所以上面的myclass2類也要再加一個(gè)這個(gè)方法的實(shí)現(xiàn) ,因?yàn)樗^承了myclass,就默 認(rèn)的支持這個(gè)接口。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 滨海县| 杭锦后旗| 蒙自县| 五原县| 洞头县| 雅江县| 临西县| 枝江市| 普定县| 溆浦县| 天峻县| 郁南县| 乌拉特后旗| 寿宁县| 若羌县| 广西| 二连浩特市| 渭源县| 金昌市| 凤翔县| 罗定市| 融水| 成安县| 台州市| 公安县| 阳江市| 改则县| 临湘市| 奎屯市| 天祝| 禄劝| 什邡市| 陆川县| 普兰店市| 二连浩特市| 高雄市| 敦化市| 江孜县| 和平区| 霍邱县| 柘荣县|