Override不是關(guān)鍵字,但是可以把它當(dāng)做關(guān)鍵字來使用。當(dāng)你想要覆寫某個方法時,可以添加這個注解。在不小心重載而非覆寫了該方法時,編譯器就會生成一條錯誤信息。
簡單的說 Override有如下好處:
(1)可以當(dāng)注釋用,方便閱讀;
(2)編譯器可以給你驗證 Override下面的方法是否是你父類中所有的,如果不是則報錯。例如,你想重寫父類中的某個方法,如果沒寫 Override,而你下面的方法又寫錯了,比如參數(shù)類型個數(shù)或者方法名不同,這時你的編譯器是可以編譯通過的,因為編譯器以為這個方法是你的子類中自己增加的方法。
拓展:Bruce的一個思考
《Thinking in java》的作者Bruce在討論這個問題的時候,提到了一個問題就是override私有的方法的例子:
現(xiàn)在我們向Fruit類中添加一個私有方法,而在Apple中嘗試復(fù)寫
@Overrideprivate?void?grow(){}
結(jié)果編譯器會提示錯誤,這是一個非常低級的錯誤,但是有時候恰恰就不會被我們發(fā)現(xiàn):那就是試著復(fù)寫私有方法,但是當(dāng)我們?nèi)サ鬙verride標(biāo)簽的時候,編譯器是不會報錯的,而且可以執(zhí)行。
其實Apple中的你所謂復(fù)寫的grow只是一個針對于Apple本身的私有方法。完全是一個新的方法。
這就引出了一個問題,何為復(fù)寫?
在面向?qū)ο笾?,只有接口和共有方法,繼承方法才有復(fù)寫,私有方法不可以復(fù)寫,其實根本就不存在復(fù)寫私有方法的概念!
以上就是天津卓眾教育java培訓(xùn)機構(gòu)的小編針對“Javase基礎(chǔ)入門視頻教程之Override詳解”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。