java @Override 詳解
熊黎玖
發(fā)布于 云南 2025-03-31 · 7048瀏覽 1贊

在 Java 里,@Override 是一個(gè)注解,它的主要作用是告知編譯器,你打算重寫(xiě)父類里的某個(gè)方法。下面從多個(gè)方面詳細(xì)介紹 @Override 注解。

 

基本用法

當(dāng)你在子類中重寫(xiě)父類的方法時(shí),可在方法聲明前添加 @Override 注解。示例如下:

在這個(gè)例子中,Dog 類繼承自 Animal 類,并且重寫(xiě)了 makeSound 方法。@Override 注解表明此方法是對(duì)父類中同名方法的重寫(xiě)。

 

使用 @Override 的好處

  1. 提高代碼可讀性:通過(guò) @Override 注解,其他開(kāi)發(fā)者能迅速知曉該方法是對(duì)父類方法的重寫(xiě),增強(qiáng)了代碼的可理解性。
  2. 編譯器檢查:編譯器會(huì)檢查被 @Override 注解標(biāo)記的方法是否確實(shí)重寫(xiě)了父類的方法。若沒(méi)有重寫(xiě),編譯器會(huì)報(bào)錯(cuò),避免因拼寫(xiě)錯(cuò)誤或方法簽名不匹配導(dǎo)致的潛在問(wèn)題。示例如下:

在上述代碼中,Child 類里的 doSomeThing 方法由于拼寫(xiě)錯(cuò)誤,并非對(duì)父類 doSomething 方法的重寫(xiě),使用 @Override 注解后編譯器會(huì)報(bào)錯(cuò)。

 

重寫(xiě)方法的規(guī)則

在使用 @Override 注解重寫(xiě)方法時(shí),需要遵循以下規(guī)則:

 

  1. 方法簽名必須相同:方法名、參數(shù)列表必須和父類中的方法一致。
  2. 返回類型必須兼容:返回類型可以和父類方法的返回類型相同,或者是其父類返回類型的子類(協(xié)變返回類型)。示例如下:

在這個(gè)例子中,Circle 類的 getShape 方法返回類型是 Circle,它是父類 Shape 中 getShape 方法返回類型 Shape 的子類,這種情況是允許的。
3. 訪問(wèn)修飾符不能更嚴(yán)格:子類方法的訪問(wèn)修飾符不能比父類方法的訪問(wèn)修飾符更嚴(yán)格。例如,若父類方法是 protected,子類重寫(xiě)的方法可以是 protected 或 public,但不能是 private。
4. 不能拋出更多的異常:子類方法不能拋出比父類方法更多的受檢查異常。

 

注意事項(xiàng)

  • @Override 注解僅適用于實(shí)例方法,不能用于靜態(tài)方法。靜態(tài)方法屬于類,而非實(shí)例,不存在重寫(xiě)的概念。
  • 接口中的默認(rèn)方法和抽象方法也可以被重寫(xiě),同樣可以使用 @Override 注解。

 

總之,@Override 注解是 Java 中一個(gè)實(shí)用的工具,能提高代碼的健壯性和可讀性,在重寫(xiě)方法時(shí)建議使用該注解。

 

 

編輯

分享

熊黎玖
這人很懶,什么都沒(méi)留下~
瀏覽 7048
1
相關(guān)推薦
最新評(píng)論
贊過(guò)的人 1
評(píng)論加載中...

暫無(wú)評(píng)論,快來(lái)評(píng)論吧!