java重寫(@Override)介紹以及舉例說明
1.概述
方法的重寫(override)是封裝的特性之一。在子類中可以根據(jù)需要對基類中繼承來的方法進行重寫。重載和重寫沒有任何關(guān)系。
作用:通過重寫,子類既可以繼承父類的東西,又可以靈活的擴充。
1.@override注解是告訴編譯器,下面的方法是重寫父類的方法
2.編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯。例如,你如果沒寫@Override,而你下面的方法名又寫錯了,這時你的編譯器是可以編譯通過的,因為編譯器以為這個方法是你的子類中自己增加的方法。
3.如果不寫@override注解去直接重寫方法,編譯器是不會判斷你是不是正確重寫了父類中的方法的。如重寫方法時參數(shù)與父類不同,程序是不會提示報錯的。這會留下一個潛在的bug。當你寫了@override注解時,程序會判斷你是否正確的重寫了父類的對應(yīng)方法。而且加上此注解后,程序會自動屏蔽父類的方法。
2.特點
在子類中可以根據(jù)需要對基類中繼承來的方法進行重寫。
重寫方法必須和被重寫方法具有相同方法名稱、參數(shù)列表和返回值類型。
重寫方法不能使用比被重寫方法更嚴格的訪問權(quán)限。(由于多態(tài))
3.實例說明
代碼如下:
public class Animal {
String name;
void eat() {
System.out.println("have a good dinner");
}
public static void main(String[] args) {
Birds b = new Birds();
b.eat();
}
}
class Birds extends Animal {
@Override
void eat() {
super.eat(); // 調(diào)用父類的方法
System.out.println("----------------------------------------"); // 分隔線
System.out.println("jiujiujiu");
}
void fly() {
System.out.println("Yeah,I can fly~~");
}
}代碼說明:
鳥類Birds在eat的時候,需要輸出jiujiujiu??赏ㄟ^重寫父類Animal中的eat()方法實現(xiàn)。
通過Bird實例調(diào)用eat()方法時,是調(diào)用重寫后的方法。
之前的父類的方法呢?其實還存在,可以在子類中通過super進行調(diào)用。
運行結(jié)果:
have a good dinner
----------------------------------------
jiujiujiu
附:加不加@override有什么區(qū)別
如果不寫@override注解去直接重寫方法,編譯器是不會判斷你是不是正確重寫了父類中的方法的。如重寫方法時參數(shù)與父類不同,程序是不會提示報錯的。這會留下一個潛在的bug。當你寫了@override注解時,程序會判斷你是否正確的重寫了父類的對應(yīng)方法。而且加上此注解后,程序會自動屏蔽父類的方法。
總結(jié)
到此這篇關(guān)于java重寫(@Override)介紹以及舉例說明的文章就介紹到這了,更多相關(guān)java重寫@Override內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-plus中IService接口的基本使用步驟
Mybatis-plus是一個Mybatis的增強工具,它提供了很多便捷的方法來簡化開發(fā),IService是Mybatis-plus提供的通用service接口,封裝了常用的數(shù)據(jù)庫操作方法,包括增刪改查等,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus中IService接口的基本使用步驟,需要的朋友可以參考下2023-06-06
Java Mybatis框架Dao層的實現(xiàn)與映射文件以及核心配置文件詳解分析
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄2021-10-10
Java?Mybatis使用resultMap時,屬性賦值順序錯誤的巨坑
這篇文章主要介紹了Java?Mybatis使用resultMap時,屬性賦值順序錯誤的巨坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
rabbitmq之無法自動創(chuàng)建隊列的問題及解決過程
文章描述了一項目使用RabbitMQ但僅使用發(fā)送功能未監(jiān)聽,導(dǎo)致啟動時無自動創(chuàng)建隊列的問題,作者通過手動連接RabbitMQ配置隊列信息來解決此問題,并提供了一種測試可用的方法,此方法僅為作者個人經(jīng)驗,僅供參考2026-05-05
基于SpringBoot+FFmpeg+ZLMediaKit實現(xiàn)本地視頻推流
文章介紹了如何在服務(wù)器上安裝和配置ZLMediaKit和FFmpeg,以及如何使用SpringBoot實現(xiàn)視頻推流和播放功能,包括環(huán)境準備、后端實現(xiàn)和使用說明,涵蓋了推流和播放的完整流程,需要的朋友可以參考下2025-11-11
Spring注解驅(qū)動之@EventListener注解使用方式
這篇文章主要介紹了Spring注解驅(qū)動之@EventListener注解使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
使用JAXBContext輕松實現(xiàn)Java和xml的互相轉(zhuǎn)換方式
這篇文章主要介紹了依靠JAXBContext輕松實現(xiàn)Java和xml的互相轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

