国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 丰镇市| 依兰县| 榆社县| 浮梁县| 泰安市| 昔阳县| 合作市| 吉木萨尔县| 涿州市| 惠东县| 安丘市| 宜州市| 临西县| 临沂市| 兴城市| 深水埗区| 华宁县| 游戏| 兴仁县| 青岛市| 遵义市| 社会| 龙山县| 额济纳旗| 咸宁市| 重庆市| 清徐县| 临沂市| 寿光市| 舒城县| 沂源县| 太原市| 福海县| 吴忠市| 兴文县| 凉城县| 绥棱县| 仙居县| 谷城县| 鹤庆县| 达州市|