慕萊塢9220042
2016-06-17 11:55:43
每天在這里貼一道 Java 題,借用java貼吧題目,來提高各位學(xué)習的興趣和質(zhì)量,希望多多支持!Child 是 Base 的子類,它重寫了 Base 中的 method1 和 method2 兩個方法方法。請問 Child 中的這兩個方法正確嗎?
3 回答
已采納

lvanli
TA貢獻7條經(jīng)驗 獲得超8個贊
編譯不出錯,使用也沒錯,但是有一點會出問題。
Child類new出來的對象會和調(diào)用者保持一致
所以如果是一個Base對象調(diào)用Child的method1返回值就不能賦值給Child。
method2沒看出問題,傳入父類時會執(zhí)行父類的方法,傳入子類時會執(zhí)行子類的方法。

慕萊塢9220042
TA貢獻377條經(jīng)驗 獲得超508個贊
推薦答案,僅供參考:
Child 中的兩個方法都有?@Override?注釋,所以本意是想重寫父類的方法。method2 方法的參數(shù)類型不對,不能重寫父類的方法,所以報錯。如果 method2 沒有使用 @Override注釋,編譯是可以通過的,但此時子類中的 method2 和 父類中的 method2 是重載(overload)的關(guān)系。

玄鑒
TA貢獻16條經(jīng)驗 獲得超4個贊
采納答案不對,肯定會報錯。重寫的第一個方法,返回值類型不同,第二個參數(shù)列表不同,這個不是方法的重寫。第一個算是對象的自動類型向上轉(zhuǎn)型勉強不會報錯,但第二個肯定報錯。除非把重寫符號去掉,當做子類特有的方法存在?;蛘咴诟割愔貙懸粋€相同參數(shù)列表的方法。與其他的兩個方法共同構(gòu)成方法重載。
添加回答
舉報
0/150
提交
取消