課程
/后端開發
/C#
/C#面向對象編程
為什么 把Dog 類轉換成Cat類后 不能調用Dog類型中的方法! 用定義的 Dog dog=new Dog("");Cat cat= dog;用cat. 不能調用Dog類的方法
2017-10-20
源自:C#面向對象編程 4-2
正在回答
問題已解決
1,肯定不能調用了啊,轉換完得到的cat已經不是dog了,這個問題其實可以類比值類型,比如:double d=4.3;
int i=(int)d;然后i會得到3,但是i不能當做d用?
dog轉為Cat,是只能用cat中的方法啊,不過不太理解為什么要Cat cat= dog;
123看不到回答 苦笑
因為你的cat已經轉換為Cat類型的對象 ,之前的屬性已經消失了。在內存中 cat的指針是指向cat的實例的。
舉報
本系列教程主要是,帶你學習C#面向對象編程的編程思想、編程技巧
1 回答自定義類型轉換是寫在被轉換的類中碼?
2 回答自定義轉換和重載運算符
1 回答為什么類轉換為接口類型時不需要強制轉換
1 回答自定義轉換 是靜態方法
2 回答請問為啥(IClimbTree)c ,貓c可以轉化為接口?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-12-20
問題已解決
2017-12-20
1,肯定不能調用了啊,轉換完得到的cat已經不是dog了,這個問題其實可以類比值類型,比如:double d=4.3;
int i=(int)d;然后i會得到3,但是i不能當做d用?
2017-11-13
dog轉為Cat,是只能用cat中的方法啊,不過不太理解為什么要Cat cat= dog;
2017-11-10
123看不到回答 苦笑
2017-10-22
因為你的cat已經轉換為Cat類型的對象 ,之前的屬性已經消失了。在內存中 cat的指針是指向cat的實例的。