欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java重寫(@Override)介紹以及舉例說明

 更新時間:2024年01月02日 11:45:43   作者:西晉的no1  
這篇文章主要給大家介紹了關(guān)于java重寫(@Override)介紹以及舉例說明的相關(guān)資料,在Java中@Override注解用于表示方法重寫(覆蓋)了父類的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.概述

方法的重寫(override)是封裝的特性之一。在子類中可以根據(jù)需要對基類中繼承來的方法進(jìn)行重寫。重載和重寫沒有任何關(guān)系。

作用:通過重寫,子類既可以繼承父類的東西,又可以靈活的擴(kuò)充。

1.@override注解是告訴編譯器,下面的方法是重寫父類的方法

2.編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯。例如,你如果沒寫@Override,而你下面的方法名又寫錯了,這時你的編譯器是可以編譯通過的,因為編譯器以為這個方法是你的子類中自己增加的方法。

3.如果不寫@override注解去直接重寫方法,編譯器是不會判斷你是不是正確重寫了父類中的方法的。如重寫方法時參數(shù)與父類不同,程序是不會提示報錯的。這會留下一個潛在的bug。當(dāng)你寫了@override注解時,程序會判斷你是否正確的重寫了父類的對應(yīng)方法。而且加上此注解后,程序會自動屏蔽父類的方法。

2.特點

  • 在子類中可以根據(jù)需要對基類中繼承來的方法進(jìn)行重寫。

  • 重寫方法必須和被重寫方法具有相同方法名稱、參數(shù)列表和返回值類型。

  • 重寫方法不能使用比被重寫方法更嚴(yán)格的訪問權(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進(jìn)行調(diào)用。

運行結(jié)果:

have a good dinner
----------------------------------------
jiujiujiu

附:加不加@override有什么區(qū)別

如果不寫@override注解去直接重寫方法,編譯器是不會判斷你是不是正確重寫了父類中的方法的。如重寫方法時參數(shù)與父類不同,程序是不會提示報錯的。這會留下一個潛在的bug。當(dāng)你寫了@override注解時,程序會判斷你是否正確的重寫了父類的對應(yīng)方法。而且加上此注解后,程序會自動屏蔽父類的方法。

總結(jié)

到此這篇關(guān)于java重寫(@Override)介紹以及舉例說明的文章就介紹到這了,更多相關(guān)java重寫@Override內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用RocketMQTemplate發(fā)送帶tags的消息

    使用RocketMQTemplate發(fā)送帶tags的消息

    這篇文章主要介紹了使用RocketMQTemplate發(fā)送帶tags的消息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • DDD框架落地實戰(zhàn)

    DDD框架落地實戰(zhàn)

    這篇文章主要為大家介紹了DDD框架落地實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java垃圾回收機(jī)制的finalize方法實例分析

    Java垃圾回收機(jī)制的finalize方法實例分析

    這篇文章主要介紹了Java垃圾回收機(jī)制的finalize方法,結(jié)合實例形式分析了finalize方法的特點及在垃圾回收機(jī)制中的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • Java中的IO讀寫原理詳解

    Java中的IO讀寫原理詳解

    這篇文章主要介紹了Java中的IO讀寫原理,IO是指輸入和輸出操作的技術(shù),它提供了一組用于讀取和寫入數(shù)據(jù)的類,以及用于處理字符和字節(jié)數(shù)據(jù)的接口,這些類和接口可以用于讀取和寫入文件、網(wǎng)絡(luò)流、內(nèi)存緩沖區(qū)等各種數(shù)據(jù)源和目標(biāo),需要的朋友可以參考下
    2023-08-08
  • 微信小程序 開發(fā)中遇到問題總結(jié)

    微信小程序 開發(fā)中遇到問題總結(jié)

    這篇文章主要介紹了微信小程序 開發(fā)中遇到問題總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • MyBatis接口的簡單實現(xiàn)原理分析

    MyBatis接口的簡單實現(xiàn)原理分析

    這里僅僅舉個簡單例子來說明原理,不是完全針對MyBatis的,這種思想我們也可以應(yīng)用在其他地方。地mybatis接口實現(xiàn)原理感興趣的朋友一起看看吧
    2017-07-07
  • Java使用枚舉實現(xiàn)狀態(tài)機(jī)的方法詳解

    Java使用枚舉實現(xiàn)狀態(tài)機(jī)的方法詳解

    這篇文章主要介紹了Java使用枚舉實現(xiàn)狀態(tài)機(jī)的方法詳解,枚舉類型很適合用來實現(xiàn)狀態(tài)機(jī),狀態(tài)機(jī)可以處于有限數(shù)量的特定狀態(tài),它們通常根據(jù)輸入,從一個狀態(tài)移動到下一個狀態(tài),但同時也會存在瞬態(tài),需要的朋友可以參考下
    2023-11-11
  • Java Validation Api實現(xiàn)原理解析

    Java Validation Api實現(xiàn)原理解析

    這篇文章主要介紹了Java Validation Api實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 詳解Java 連接MongoDB集群的幾種方式

    詳解Java 連接MongoDB集群的幾種方式

    這篇文章主要介紹了詳解Java 連接MongoDB集群的幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    文章主要介紹了MyBatis中高級多表查詢的四種方式:ResultMap、association、collection以及自連接查詢,通過定義接口的抽象方法、編寫mapper.xml和測試類,詳細(xì)展示了如何根據(jù)復(fù)雜數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的裝配和查詢,感興趣的朋友一起看看吧
    2024-11-11

最新評論