更新時間:2020-07-29 14:39:19 來源:動力節點 瀏覽2136次
Override不是關鍵字,但是可以把它當做關鍵字來使用。當你想要覆寫某個方法時,可以添加這個注解。在不小心重載而非覆寫了該方法時,編譯器就會生成一條錯誤信息。
簡單的說 Override有如下好處:
(1)可以當注釋用,方便閱讀;
(2)編譯器可以給你驗證 Override下面的方法是否是你父類中所有的,如果不是則報錯。例如,你想重寫父類中的某個方法,如果沒寫 Override,而你下面的方法又寫錯了,比如參數類型個數或者方法名不同,這時你的編譯器是可以編譯通過的,因為編譯器以為這個方法是你的子類中自己增加的方法。
拓展:Bruce的一個思考
《Thinking in java》的作者Bruce在討論這個問題的時候,提到了一個問題就是override私有的方法的例子:
現在我們向Fruit類中添加一個私有方法,而在Apple中嘗試復寫
@Override
private?void?grow(){
}
結果編譯器會提示錯誤,這是一個非常低級的錯誤,但是有時候恰恰就不會被我們發現:那就是試著復寫私有方法,但是當我們去掉Override標簽的時候,編譯器是不會報錯的,而且可以執行。
其實Apple中的你所謂復寫的grow只是一個針對于Apple本身的私有方法。完全是一個新的方法。
這就引出了一個問題,何為復寫?
在面向對象中,只有接口和共有方法,繼承方法才有復寫,私有方法不可以復寫,其實根本就不存在復寫私有方法的概念!
以上就是動力節點java培訓機構的小編針對“Javase基礎入門視頻教程之Override詳解”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習