亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#接口(Interface)用法分析

 更新時(shí)間:2015年03月30日 15:58:11   作者:樂(lè)樂(lè)010  
這篇文章主要介紹了C#接口(Interface)用法,較為詳細(xì)的分析了C#中接口的功能、實(shí)現(xiàn)及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例分析了C#接口(Interface)用法。分享給大家供大家參考。具體分析如下:

繼承"基類"跟繼承"接口"都能實(shí)現(xiàn)某些相同的功能,但有些接口能夠完成的功能是只用基類無(wú)法實(shí)現(xiàn)的

1.接口用于描述一組類的公共方法/公共屬性. 它不實(shí)現(xiàn)任何的方法或?qū)傩?,只是告訴繼承它的類至少要實(shí)現(xiàn)哪些功能,繼承它的類可以增加自己的方法.

2.使用接口可以使繼承它的類: 命名統(tǒng)一/規(guī)范,易于維護(hù).比如: 兩個(gè)類 "狗"和"貓",如果它們都繼承了接口"動(dòng)物",其中動(dòng)物里面有個(gè)方法Behavior(),那么狗和貓必須得實(shí)現(xiàn)Behavior()方法,

并且都命名為Behavior這樣就不會(huì)出現(xiàn)命名太雜亂的現(xiàn)象.如果命名不是Behavior(),接口會(huì)約束即不按接口約束命名編譯不會(huì)通過(guò).

3.提供永遠(yuǎn)的接口。 當(dāng)類增加時(shí),現(xiàn)有接口方法能夠滿足繼承類中的大多數(shù)方法,沒(méi)必要重新給新類設(shè)計(jì)一組方法,也節(jié)省了代碼,提高了開發(fā)效率.

舉個(gè)代碼示例:

//公共接口: "動(dòng)物"
public Interface IAnimal
{
int EyeNumber;
private void Behavior();//行為方法,描述各種動(dòng)物的特性
}
//類: 狗
public Dog : IAnimal
{
string ActiveTime = "白天";
private void Behavior()
{
{
Console.Write("我晚上睡覺(jué),白天活動(dòng)");
}
}
//類: 貓
public Cat: IAnimal
{
string ActiveTime = "夜晚";
private void Behavior()
{ {
Console.Write("我白天睡覺(jué),晚上活動(dòng)");
}
}
//簡(jiǎn)單的應(yīng)用:
public static Main()
{
Dog myDog = new Dog();
myDog.Behavior(); //輸出: "我晚上睡覺(jué),白天活動(dòng)"
Cat myCat = new Cat();
myCat.Behavior(); //輸出: "我白天睡覺(jué),晚上活動(dòng)"
}

以上調(diào)用不同的類的相同名方法,會(huì)輸出不同的東東,也就是說(shuō)每個(gè)類里面的同名方法完成的功能可以是完全不同的.

更進(jìn)一步,不是用上面Main方法這樣一個(gè)一個(gè)調(diào)用類的方法,用多態(tài)性實(shí)現(xiàn)其調(diào)用.
看一下下面這個(gè)方法:

public Behavior(IAnimal myIanimal)
{
myIanimal.Behavior();
}

其參數(shù)是<<接口類型>>,任何繼承它的類都可以調(diào)用此方法,此方法能根據(jù)類的不同調(diào)用不同的類中的方法. 也即能夠自己根據(jù)不同的類,完成不同的類的功能.

多態(tài)性代碼示例:

Dog myDog = new Dog();
Cat myCat = new Cat();
Behavior(myDog); //Behavior接受“狗”類實(shí)例
Behavior(myCat); //Behavior接受“狗”類實(shí)例

這樣Behavior方法寫一次就能完成所有繼承它的類中的相同名方法的不同功能. 非常方便,同樣,由于“動(dòng)物軟件”功能需求,需要再增加一個(gè)"龜"類:

//類: 龜
public Tortoise: IAnimal
{
string ActiveTime = "很難說(shuō)";
private void Behavior()
{
{
Console.Write("我可以不活動(dòng),一睡就睡五千年!");
}
}

那么也可以調(diào)用上面多態(tài)方法,所以說(shuō)接口使方法具有較好擴(kuò)展性.
如果繼承它的類很多的話,有多少好處是可想而知的!

另外, 也有抽象類能夠?qū)崿F(xiàn)但接口不能實(shí)現(xiàn)的情況:

1. 在抽象類中可以加代碼邏輯,但接口不能.

2. 如果要在接口中增加一個(gè)方法, 所有實(shí)現(xiàn)它的類都強(qiáng)制重載一遍此方法, 如果重載類很多時(shí), 會(huì)增大工作量.

總之, 一般在僅實(shí)現(xiàn)單繼承用途時(shí), 盡量用抽象類, 功能也更強(qiáng)些!

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#編寫Windows服務(wù)實(shí)例代碼

    C#編寫Windows服務(wù)實(shí)例代碼

    本篇文章主要介紹使用Microsoft Visual Studio2012可以很方便的創(chuàng)建一個(gè)Windows服務(wù),本例實(shí)現(xiàn)一個(gè)向D盤的txt文件里,寫入系統(tǒng)時(shí)間的Windows服務(wù)
    2013-10-10
  • C#判斷多個(gè)文本框是否為空的方法

    C#判斷多個(gè)文本框是否為空的方法

    這篇文章主要介紹了C#判斷多個(gè)文本框是否為空的方法,可實(shí)現(xiàn)對(duì)多個(gè)文本框的遍歷、判斷及提示等功能,需要的朋友可以參考下
    2015-06-06
  • C#圖像線性變換的方法

    C#圖像線性變換的方法

    這篇文章主要介紹了C#圖像線性變換的方法,涉及C#操作圖像線性變換的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    C#實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼

    C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼

    這篇文章主要介紹了C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12
  • C#多線程學(xué)習(xí)之(三)生產(chǎn)者和消費(fèi)者用法分析

    C#多線程學(xué)習(xí)之(三)生產(chǎn)者和消費(fèi)者用法分析

    這篇文章主要介紹了C#多線程學(xué)習(xí)之生產(chǎn)者和消費(fèi)者用法,實(shí)例分析了C#中線程沖突的原理與資源分配的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C# 設(shè)計(jì)模式系列教程-命令模式

    C# 設(shè)計(jì)模式系列教程-命令模式

    在軟件系統(tǒng)中,行為請(qǐng)求者與行為實(shí)現(xiàn)者通常是一種緊耦合的關(guān)系,但某些場(chǎng)合,比如需要對(duì)行為進(jìn)行記錄、撤銷或重做、事務(wù)等處理時(shí),這種無(wú)法抵御變化的緊耦合的設(shè)計(jì)就不太合適。
    2016-06-06
  • 磁盤配額的wmi版本(C#)

    磁盤配額的wmi版本(C#)

    磁盤配額的wmi版本(C#)...
    2007-03-03
  • C#中StringBuilder類的使用總結(jié)

    C#中StringBuilder類的使用總結(jié)

    本篇文章主要是對(duì)C#中StringBuilder類的使用方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • 基于Unity實(shí)現(xiàn)2D邊緣檢測(cè)

    基于Unity實(shí)現(xiàn)2D邊緣檢測(cè)

    這篇文章主要介紹了如何利用Unity實(shí)現(xiàn)2D邊緣檢測(cè),從而達(dá)到人物描邊效果。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04

最新評(píng)論