Java注解詳解之@Override注解
1.是什么
@Override注解是偽代碼,用于表示被標注的方法是一個重寫方法。
@Override注解,只能用于標記方法,并且它只在編譯期生效,不會保留在class文件中。
@Override 檢查該方法是否是重寫方法。如果發(fā)現(xiàn)其父類,或者是引用的接口中并沒有該方法時,會報編譯錯誤。
@Override注解標記的方法聲明,如果沒有覆寫或者實現(xiàn)超類的方法聲明,或者不是覆寫Object的public方法,那么編譯就會報錯。使用@Override注解,有助于我們盡早發(fā)現(xiàn)這樣的錯誤:本來想聲明一個“覆寫”方法,卻偶然聲明成“重載”方法。
2.為什么用
既然不寫@Override也可以重寫父類的方法,那為什么非要“多此一舉”寫上這個注解呢?
使用@Override注解主要有兩個好處:
1)幫助自己檢查是否正確的重寫父類方法
2)明顯的提示看代碼的人,這是重寫的方法
3.舉例說明
1)示例一
public class Person {
private String name;
private String sex;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}上述代碼是重寫 Object 類的 toString() 方法,該方法使用 @Override 注解。如果 toString() 不小心寫成了 t0String(),那么程序會發(fā)生編譯錯誤。會有如下的代碼提示:
類型為 Person 的方法t0String()必須覆蓋或實現(xiàn)超類型方法
2)示例二
public class Person {
private String name;
/**
* 標記Override,會報錯,因為這是equals方法重載
*/
@Override
public boolean equals(Person person){
return this.name.equals(person.name);
}
/**
* 覆寫Object的equals方法
*/
@Override
public boolean equals(Object person){
return this.name.equals(((Person)person).name);
}
}3)示例三
public class Animal {
public void eat(){
System.out.println("吃飯");
}
}public class Dog extends Animal{
@Override
public void eat(){
System.out.println("狗會吃飯");
}
}
聲明兩個類Animal和Dog,Dog類繼承了Animal類并且對其eat方法進行了重寫;可以發(fā)現(xiàn)在重寫eat方法時我們加上了@Override注解,其實不加這個注解代碼也不會出現(xiàn)問題;但如果在開發(fā)過程中不小心寫錯方法名或者寫錯了參數(shù),但這是符合語法規(guī)范的,能夠順利通過編譯;但相關業(yè)務功能沒能實現(xiàn),這就會降低我們的開發(fā)效率,增加開發(fā)成本,這也就是為什么要用@Override注解的原因。
代碼的可讀性是非常重要的,我們寫的代碼很多時候會被別人看到或者修改,加上@Override注解會讓看代碼的人一眼明白,這個方法是重寫了父類的方法,可讀性更佳!
總結
到此這篇關于Java注解詳解之@Override注解的文章就介紹到這了,更多相關詳解@Override注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu環(huán)境下的 RabbitMQ 安裝與配置詳細指南
本文詳解Ubuntu下RabbitMQ安裝與配置,涵蓋Erlang依賴安裝、服務部署、管理界面啟用及安全用戶權限設置,強調多協(xié)議支持、高可用性設計和分布式場景適配,助力構建穩(wěn)定可靠的消息隊列系統(tǒng),感興趣的朋友跟隨小編一起看看吧2025-09-09
SpringBoot?使用?Sa-Token?完成權限認證的操作方法
Sa-Token是一款輕量級Java權限認證框架,適用于快速搭建權限系統(tǒng),它提供了豐富的功能,下面給大家介紹SpringBoot?使用?Sa-Token?完成權限認證的相關操作,感興趣的朋友跟隨小編一起看看吧2025-02-02
Java中Optional.of()方法及源碼解析(非常詳細!)
這篇文章主要給大家介紹了關于Java中Optional.of()方法及源碼解析的相關資料,Java中java.util .Optional類的of()方法用于獲得該Optional類中具有指定類型的指定值的一個實例,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06
SpringBoot?表單提交全局日期格式轉換器實現(xiàn)方式
這篇文章主要介紹了SpringBoot?表單提交全局日期格式轉換器,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

