3 回答

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

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

TA貢獻(xiàn)16條經(jīng)驗 獲得超4個贊
采納答案不對,肯定會報錯。重寫的第一個方法,返回值類型不同,第二個參數(shù)列表不同,這個不是方法的重寫。第一個算是對象的自動類型向上轉(zhuǎn)型勉強不會報錯,但第二個肯定報錯。除非把重寫符號去掉,當(dāng)做子類特有的方法存在。或者在父類重寫一個相同參數(shù)列表的方法。與其他的兩個方法共同構(gòu)成方法重載。
添加回答
舉報