已采納回答 / zjuPeco
對的。若在類Dog.cs中寫下<...code...>則在static void Main(string[] args)中可用<...code...>實現(xiàn)狗到貓的隱式類型轉(zhuǎn)換。若在類Cat.cs中寫下<...code...>則在static void Main(string[] args)中可用<...code...>實現(xiàn)貓到狗的顯示轉(zhuǎn)換。
2017-03-11
最贊回答 / 零零拾
類使對象的模板 通過類可以實例化出對象 這樣已經(jīng)很完美了 但是如果設(shè)計基類卻成了非常講究技巧的事情 如果基類設(shè)計的過于繁重就會影響通用性 如果基類設(shè)計的過于簡單 將會使代碼變得復(fù)雜 此時就該接口出場了 接口往往代表著一種能力 推薦把接口明明城動詞 比如說 定義一個基類叫動物 貓繼承了動物 然后在定義接口吃/泡/叫等等 這樣以后有什么其他的類出現(xiàn)了 比如外星人 可能并不是動物 但是他可能會跑 這樣就能直接實現(xiàn)這個接口 最主要的使可以直接要求外星人跑 而不需要進(jìn)行單獨的處理 常見的應(yīng)用也很多 比如,事件監(jiān)聽,...
2017-03-10
最贊回答 / 慕粉1717395010
如果是new,那你用基類聲明一個子類的變量時,他不會調(diào)用子類new的方法,而是調(diào)用基類的方法,”E:Pet cat1=new Cat("Tom"); “ ? cat1.Speaking仍是調(diào)用基類的Speaking; 如果是用虛方法,“E:Pet cat2=new Cat("Tom"); ” ,cat2.Speaking調(diào)用的就是派生類的Speaking;不知道我講的你能懂不,我也是剛學(xué)的。
2017-03-05
已采納回答 / 天再高又怎樣
剛百度了一下,var可以替代任何類型,但必須在定義時初始化,即<...code...>,都可以的,在編譯時var聲明的類型將會根據(jù)賦值語句自動判定,分別判定為int,char,string。所以自己寫方便,但是別人讀起來麻煩。我回顧了課程老師在泛型中用到?<...code...>?我也是初學(xué),讀不懂var替代的是什么類型,所以我猜不清楚的類型所以就用var唄,哈哈
2017-02-28
講師回答 / kong66
new是隱藏父類方法,override是重載父類方法,區(qū)別就在調(diào)用的時候。如果父類類引用到派生類對象,通過父類引用去調(diào)用隱藏方法(new的),則調(diào)用基類方法;如果調(diào)用override同名方法,則調(diào)用的是派生類方法。
2017-02-28