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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

泛型類多態(tài)?協(xié)變逆變?

泛型類多態(tài)?協(xié)變逆變?

C#
富國滬深 2018-08-06 06:10:54
在實現(xiàn)行為模式時,用繼承和多態(tài)搞定是沒問題,可在嘗試使用泛型化的類來實現(xiàn)時,遇到了一些問題,自己也去看了協(xié)變逆變相關(guān)的知識,發(fā)現(xiàn)還是無法理解,特來向各位園友請求賜教,謝謝!想達成的效果是,定義一個泛型基類集合,然后添加此泛型基類派生出來的子類至集合中,并在循環(huán)中調(diào)用基類的方法。可是,遇到了一些問題,是泛型參數(shù)不支持繼承?Car<IBrand>或ICar<IBrand> 并不能接受子類Car<Bmw> 的賦值, 看上去好像不僅僅像是協(xié)變逆變方面的問題,或是我哪里理解有誤,不解中……
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

逆變協(xié)變這個你換個思路來看

協(xié)變,從具體往抽象(從派生類往父類變動)

逆變,從抽象往具體(同上相反)

從關(guān)鍵字看

協(xié)變 out (直接可以看成返回)

逆變 in  (直接可以看為入?yún)ⅲ?/p>

你寫的代碼的問題有兩個

1.這里是協(xié)變(out)

2.class級別是不支持逆變和協(xié)變的(隱式支持協(xié)變,但這個是另一個話題了),所以你這邊不可能直接從Car<T>中鼓搗出個類似于Cat<out T>的玩意出來,所以你第一行是沒辦法了


查看完整回答
反對 回復 2018-08-20
  • 1 回答
  • 0 關(guān)注
  • 736 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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