第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

有兩個問題:1、既然接口方法已經(jīng)在類Cat中實現(xiàn)了,那么直接通過對象調(diào)用 c.catchmice();不就可以實現(xiàn)抓老鼠的功能了嗎?為什么還要把貓C強制轉(zhuǎn)換成接口類型?2、既然接口方法必須在類中實現(xiàn),哪和直接在類中定義方法有什么區(qū)別?例如,如果狗爬樹也調(diào)用ClimbTree接口的話,是不是還得在狗的類里面再寫一次爬樹接口的函數(shù)體嗎?

? ? public class Cat : Pet,ICatchMice,IClimbTree

? ? {

? ? ? ? public Cat(string name):base(name)? //構(gòu)造函數(shù)

? ? ? ? {

?

? ? ? ? }

? ? ? ? public override void Speak()? //override 重寫

? ? ? ? {

? ? ? ? ? ? Console.WriteLine(_name + " is speaking:" + "喵喵");

? ? ? ? }


? ? ? ?public void catchmice()? //實現(xiàn)接口成員,既要聲明且加上public 又要加上函數(shù)體

? ? ? ?{

? ? ? ? ? ? Console.WriteLine(_name + " had caught a mice!");

? ? ? ? }


? ? ? ? public void climbtree()

? ? ? ? {

? ? ? ? ? ?Console.WriteLine(_name + " is climbing a big tree!");

? ? ? ? }


? ? }


?class Program

? ? {

? ? ? ? static void Main(string[] args)

? ? ? ? {

? ? ? ? ? ? //用基類類型的引用,可以方便不同子類的統(tǒng)一管理 ,例如利用一個容器(數(shù)組)保存所有的子類

? ? ? ? ? ? Pet[] pets = new Pet[] { new Dog("喵喵"),new Cat("汪汪"),new Taidi("小三") };

? ? ? ? ? ? for (int i=0;i<pets.Length;++i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? pets[i].Speak();

? ? ? ? ? ? }


? ? ? ? ? ? Cat c = new Cat("Tom");

? ? ? ? ? ? //ICatchMice catchM = (ICatchMice)c;

? ? ? ? ? ? //catchM.catchmice();

? ? ? ? ? ? c.catchmice();

? ? ? ? ? ? c.climbtree();

? ? ? ? ? ? Console.ReadLine();



? ? ? ? }

? ? }



正在回答

5 回答

強制轉(zhuǎn)換屬于顯示接口,而一般用隱式接口

當(dāng)類實現(xiàn)多個接口時,并且接口中包含相同的方法簽名,可以標(biāo)識出哪個方法屬于哪個接口


0 回復(fù) 有任何疑惑可以回復(fù)我~

可以去看看Gof的書。。。

0 回復(fù) 有任何疑惑可以回復(fù)我~

就是為了降低耦合度,提高你代碼的擴展性,這就是為什么采用接口。

把貓C強制轉(zhuǎn)換成接口類型的優(yōu)點是讓你的代碼提高了擴展性啊,你可以是貓,狗,蜥蜴等等。如果你用Cat,那你只能是貓了。明白沒。。。

如果想讓狗爬樹,可以調(diào)用Climbtree接口,是需要重寫一次爬樹函數(shù)的。

0 回復(fù) 有任何疑惑可以回復(fù)我~

\\△石'必忍\九d△/次◇情事_,o∨二心入啟九o??丫條,\

0 回復(fù) 有任何疑惑可以回復(fù)我~

面向?qū)ο蟮幕驹瓌t:依賴倒轉(zhuǎn)原則,程序設(shè)計應(yīng)該依賴抽象,而不依賴具體

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

有兩個問題:1、既然接口方法已經(jīng)在類Cat中實現(xiàn)了,那么直接通過對象調(diào)用 c.catchmice();不就可以實現(xiàn)抓老鼠的功能了嗎?為什么還要把貓C強制轉(zhuǎn)換成接口類型?2、既然接口方法必須在類中實現(xiàn),哪和直接在類中定義方法有什么區(qū)別?例如,如果狗爬樹也調(diào)用ClimbTree接口的話,是不是還得在狗的類里面再寫一次爬樹接口的函數(shù)體嗎?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號