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

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

重寫equal中的obj強(qiáng)轉(zhuǎn)為Course問題

????if?(!(obj?instanceof?Course))?????????????
????return?false;????????
????Course?course?=?(Course)?obj;
????為什么已經(jīng)判斷了obj屬于Course類型了還要進(jìn)行強(qiáng)轉(zhuǎn)?


正在回答

5 回答

你表達(dá)清楚了 但是也說明了你沒學(xué)清楚多態(tài)....

當(dāng)父類引用指向子類對象時,只能使用父類中的屬性和方法,obj是Object類型的 ?這個類里面是沒有name這個屬性的,所以必須得強(qiáng)轉(zhuǎn)之后才能使用name這個屬性

第二個Course course = obj 寫法是錯誤的 ?這里面obj是Object類型, ?子類不能直接指向父類對象所以必須加強(qiáng)轉(zhuǎn)

改為Course?course?=?(Course)?obj;

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

qq_澡堂麥霸_0 提問者

是啊,多態(tài)不是很明白,能否簡單的說一下什么是多態(tài),謝謝了!最后還有一個疑問,就是前面 if (!(obj instanceof Course))這一句不是判斷了obj是Course類型的了,然后你又說obj是Object類型,這兩點之間不是矛盾了嗎?給我個解釋,謝謝!感謝!
2015-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
#2

天啟之魂 回復(fù) qq_澡堂麥霸_0 提問者

if (!(obj instanceof Course)) 這個只是判斷了obj是否是從 Course 類型提升上來的 ,并不是判斷obj是不是Course類型 如果為true,說明obj就是Course的一個實例提升到了Object來的,有了這個前提,你才能進(jìn)行下面的強(qiáng)轉(zhuǎn)動作
2015-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
#3

會做夢的世界

當(dāng)父類引用指向子類對象時,只能使用父類中的屬性和方法。這句話是不是有一定的錯誤,因為子類中重寫了父類的方法,也能調(diào)用該重寫的方法,比如: class Animal{ public void eat(){ System.out.println("a"); } } class Dog extends Animal{ public void eat(){ System.out.println("b"); } } Animal child=new Dog(); child.eat(); 打印出來的是b啊,這算不算調(diào)用了子類的方法呢
2015-12-27 回復(fù) 有任何疑惑可以回復(fù)我~
#4

菜鳥起飛點 回復(fù) qq_澡堂麥霸_0 提問者

問題一 多態(tài):1引用的多態(tài):a.父類的引用可以指向本類對象 b.父類引用可以指向一個子類對象 2方法的多態(tài):a.創(chuàng)建本類對象時,調(diào)用的方法為本類方法 b.創(chuàng)建子類對象時,調(diào)用的方法為子類重寫的方法或者是繼承的方法(但不能調(diào)用子類獨有的方法) 問題二:if (!(obj instanceof Course))這一句返回值為false所以判斷為不是同一類型,此時需要類型強(qiáng)轉(zhuǎn),因為obj為Object類型所以要轉(zhuǎn)換成Course類型,這樣才能在下一步屬性的比較中調(diào)用name屬性
2016-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

樓主可以這樣想,如果傳入的是Course的一個子類呢?當(dāng)然也算是Course類的吧?但是此時要引用父類的屬性,所以要強(qiáng)轉(zhuǎn),因為這里是形參,有很多種情況要考慮。

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

obj傳進(jìn)來的時候不是Course類而是他的父類Objece類

至于為什么要強(qiáng)轉(zhuǎn)呢。因為父類不可以使用子類的屬性!

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

? 如果一個人是警察 你也知道他是警察了 一般是他要穿上警服 才去巡邏執(zhí)法(不要說特殊情況了)

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

就是判斷了obj是Course 才能夠進(jìn)行強(qiáng)轉(zhuǎn) ?instanceof 就是提前判斷能否強(qiáng)轉(zhuǎn)?

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

qq_澡堂麥霸_0 提問者

我的意思是,前面已經(jīng)判斷成功obj就是Course類型的了,為什么還要 Course course = (Course) obj;這一句,也就是說,老師下面寫的this.name.equals(course.name)不是直接可以用this.name.equals(obj.name),為什么還要多寫這一句?這一句不就多余了?再說了,如果要多加這一句,不是可以直接這么寫 Course course = obj?為什么還要強(qiáng)轉(zhuǎn)? 不知道我有沒有表述清楚
2015-11-12 回復(fù) 有任何疑惑可以回復(fù)我~
#2

sjzcf 回復(fù) qq_澡堂麥霸_0 提問者

obj不是course 將course提升為object 相當(dāng)與任何格式的文件都可以放到文件夾中 文件夾包含course 但不是course 用的時候把course拿出來才能用
2015-11-17 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

重寫equal中的obj強(qiáng)轉(zhuǎn)為Course問題

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

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

幫助反饋 APP下載

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

公眾號

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