1. 程式人生 > WINDOWS開發 >C# 淺談 介面(Interface)的作用

C# 淺談 介面(Interface)的作用

C# 淺談 介面(Interface)的作用

繼承"基類"跟繼承"介面"都能實現某些相同的功能,但有些介面能夠完成的功能是隻用基類無法實現的

1.介面用於描述一組類的公共方法/公共屬性. 它不實現任何的方法或屬性,只是告訴繼承它的類 《至少》要實現哪些功能,繼承它的類可以增加自己的方法.

2.使用介面可以使繼承它的類: 命名統一/規範,易於維護.比如: 兩個類 """",如果它們都繼承了介面"動物",其中動物裡面有個方法Behavior(),那麼狗和貓必須得實現Behavior()方法,並且都命名為Behavior這樣就不會出現命名太雜亂的現象.如果命名不是Behavior(),介面會約束即不按介面約束命名編譯不會通過

.

3.提供永遠的介面。 當類增加時,現有介面方法能夠滿足繼承類中的大多數方法,沒必要重新給新類設計一組方法,也節省了程式碼,提高了開發效率.

舉個程式碼示例:

//公共介面: "動物"

public Interface IAnimal

{

int EyeNumber;

private void Behavior(); //行為方法,描述各種動物的特性

}

//:

public Dog : IAnimal

{

string ActiveTime = "白天";

private void Behavior()

{

Console.Write("我晚上睡覺,白天活動");

}

}

//:

public Cat: IAnimal

{

string ActiveTime = "夜晚";

private void Behavior()

{

Console.Write("我白天睡覺,晚上活動");

}

}

//簡單的應用:

public static Main()

{

Dog myDog = new Dog();

myDog.Behavior(); //輸出: "我晚上睡覺,白天活動"

Cat myCat = new Cat();

myCat.Behavior(); //輸出: "我白天睡覺,晚上活動"

}

以上呼叫不同的類的相同名方法,會輸出不同的東東,也就是說每個類裡面的同名方法完成的功能可以是完全不同的

.

更進一步,不是用上面Main方法這樣一個一個呼叫類的方法,用多型性實現其呼叫.

看一下下面這個方法:

public Behavior(IAnimal myIanimal)

{

myIanimal.Behavior();

}

其引數是<<介面型別>>,任何繼承它的類都可以呼叫此方法,此方法能根據類的不同調用不同的類中的方法. 也即能夠自己根據不同的類,完成不同的類的功能.

多型性程式碼示例:

Dog myDog = new Dog();

Cat myCat = new Cat();

Behavior(myDog); //Behavior接受類例項

Behavior(myCat); //Behavior接受類例項

這樣Behavior方法寫一次就能完成所有繼承它的類中的相同名方法的不同功能. 非常方便,

同樣,由於動物軟體功能需求,需要再增加一個"":

//:

public Tortoise: IAnimal

{

string ActiveTime = "很難說";

private void Behavior()

{

Console.Write("我可以不活動,一睡就睡五千年!");

}

}

那麼也可以呼叫上面多型方法,所以說介面使方法具有較好擴充套件性.如果繼承它的類很多的話,有多少好處是可想而知的!