亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 每日一題:2016-06-17

Java 每日一題:2016-06-17

慕萊塢9220042 2016-06-17 11:55:43
每天在這里貼一道 Java 題,借用java貼吧題目,來提高各位學習的興趣和質量,希望多多支持!Child 是 Base 的子類,它重寫了 Base 中的 method1 和 method2 兩個方法方法。請問 Child 中的這兩個方法正確嗎?
查看完整描述

3 回答

已采納
?
lvanli

TA貢獻7條經驗 獲得超8個贊

編譯不出錯,使用也沒錯,但是有一點會出問題。

Child類new出來的對象會和調用者保持一致

所以如果是一個Base對象調用Child的method1返回值就不能賦值給Child。

method2沒看出問題,傳入父類時會執行父類的方法,傳入子類時會執行子類的方法。

查看完整回答
2 反對 回復 2016-06-17
  • SoyaDokio
    SoyaDokio
    編譯器會在27行報錯,因為Child類中method2方法的參數列表與父類同名方法參數列表不同,故無法覆寫,那就是一個Child類自己的方法。但是26行聲明,該行下面應為重寫方法,實則不然。故報錯。
?
慕萊塢9220042

TA貢獻377條經驗 獲得超508個贊

推薦答案,僅供參考:

Child 中的兩個方法都有?@Override?注釋,所以本意是想重寫父類的方法。method2 方法的參數類型不對,不能重寫父類的方法,所以報錯。如果 method2 沒有使用 @Override注釋,編譯是可以通過的,但此時子類中的 method2 和 父類中的 method2 是重載(overload)的關系。

查看完整回答
2 反對 回復 2016-06-18
  • 一條小咸魚
    一條小咸魚
    參數類型不同也能夠成重載?
  • 玄鑒
    玄鑒
    當然,重載的重要不同就是參數列表不同,甚至順序不同也可以算是重載。
  • SoyaDokio
    SoyaDokio
    重載關系我倒是沒想到,多謝提醒。
?
玄鑒

TA貢獻16條經驗 獲得超4個贊

采納答案不對,肯定會報錯。重寫的第一個方法,返回值類型不同,第二個參數列表不同,這個不是方法的重寫。第一個算是對象的自動類型向上轉型勉強不會報錯,但第二個肯定報錯。除非把重寫符號去掉,當做子類特有的方法存在?;蛘咴诟割愔貙懸粋€相同參數列表的方法。與其他的兩個方法共同構成方法重載。

查看完整回答
1 反對 回復 2016-06-20
  • 3 回答
  • 2 關注
  • 1537 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號