重寫equal中的obj強轉為Course問題
????if?(!(obj?instanceof?Course))????????????? ????return?false;???????? ????Course?course?=?(Course)?obj; ????為什么已經判斷了obj屬于Course類型了還要進行強轉?
????if?(!(obj?instanceof?Course))????????????? ????return?false;???????? ????Course?course?=?(Course)?obj; ????為什么已經判斷了obj屬于Course類型了還要進行強轉?
2015-11-12
舉報
2015-11-12
你表達清楚了 但是也說明了你沒學清楚多態....
當父類引用指向子類對象時,只能使用父類中的屬性和方法,obj是Object類型的 ?這個類里面是沒有name這個屬性的,所以必須得強轉之后才能使用name這個屬性
第二個Course course = obj 寫法是錯誤的 ?這里面obj是Object類型, ?子類不能直接指向父類對象所以必須加強轉
改為Course?course?=?(Course)?obj;
2016-01-08
樓主可以這樣想,如果傳入的是Course的一個子類呢?當然也算是Course類的吧?但是此時要引用父類的屬性,所以要強轉,因為這里是形參,有很多種情況要考慮。
2015-11-29
obj傳進來的時候不是Course類而是他的父類Objece類
至于為什么要強轉呢。因為父類不可以使用子類的屬性!
2015-11-20
? 如果一個人是警察 你也知道他是警察了 一般是他要穿上警服 才去巡邏執法(不要說特殊情況了)
2015-11-12
就是判斷了obj是Course 才能夠進行強轉 ?instanceof 就是提前判斷能否強轉?