最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中重寫父類方法加不加@Override詳解

 更新時(shí)間:2021年06月21日 16:31:56   作者:這貨凈瞎扯  
這篇文章主要介紹了java中重寫父類方法加不加@Override詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java重寫父類方法加不加@Override

這個(gè)是我在剛學(xué)習(xí)java時(shí)遇到的問題,希望能給像我一樣的新手學(xué)習(xí)時(shí)帶來幫助,如有錯(cuò)誤請(qǐng)指正,謝謝!

class Father{
    public String name;
    public int age;
    public Father(){
    }
    public void work(){
        System.out.println("蓋房子");
    }
}
class Son extends Father{
    public int weight;
    public Son(){
    }
    public void work(){
        System.out.println(i);
    }
}

上面子類的work()方法和基類work()方法的控制器類型(包括返回值類型、參數(shù)等)是完全一致的,這種情況加不加@Override都是可以的,都可以對(duì)基類方法進(jìn)行重寫。

因?yàn)椴粚懙那闆r下,java虛擬機(jī)會(huì)進(jìn)行自動(dòng)識(shí)別。

class Son extends Father{
    public int weight;
    public Son(){
    }
    public int work(int i){
        System.out.println();
    }
}

在上面這種情況下,work()方法會(huì)被系統(tǒng)認(rèn)為是子類新定義的方法,沒有繼承基類,這也是被允許的。

class Son extends Father{
    public int weight;
    public Son(){
    }
    public int work(){
        System.out.println();
        return 1;
    }
}

但是這種情況只修改返回值類型時(shí),是不被允許的,其仍被看做基類的重寫,但是返回值類型變了,就會(huì)被編輯器認(rèn)為基類重寫返回值類型不一致而報(bào)錯(cuò)。

所以存在即合理,在編寫代碼時(shí)如果需要對(duì)基類進(jìn)行重寫還是加上@Override比較好,還可以檢測(cè)一些容易忽略的錯(cuò)誤。

@Override的作用

@Override是偽代碼,表示重寫(當(dāng)然不寫也可以),不過寫上有如下好處:

1、可以當(dāng)注釋用,方便閱讀

2、編譯器可以給你驗(yàn)證@Override下面的方法名是否是你父類中所有的,如果沒有則報(bào)錯(cuò)。

例如,你如果沒寫@Override,而你下面的方法名又寫錯(cuò)了,這時(shí)你的編譯器是可以編譯通過的,因?yàn)榫幾g器以為這個(gè)方法是你的子類中自己增加的方法。

舉例:在重寫父類的onCreate時(shí),在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性。

@Override
public void onCreate(Bundle savedInstanceState)
{…….}

這種寫法是正確的,如果你寫成:

@Override
public void oncreate(Bundle savedInstanceState)
{…….}

編譯器會(huì)報(bào)如下錯(cuò)誤:

The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method

以確保你正確重寫onCreate方法(因?yàn)閛ncreate應(yīng)該為onCreate)。

而如果你不加@Override,則編譯器將不會(huì)檢測(cè)出錯(cuò)誤,而是會(huì)認(rèn)為你為子類定義了一個(gè)新方法:oncreate

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

1.簡(jiǎn)單來說@override注解是告訴編譯器,下面的方法是重寫父類的方法

2.如果不寫@override注解去直接重寫方法,編譯器是不會(huì)判斷你是不是正確重寫了父類中的方法的。

如重寫方法時(shí)參數(shù)與父類不同,程序是不會(huì)提示報(bào)錯(cuò)的。這會(huì)留下一個(gè)潛在的bug。

當(dāng)你寫了@override注解時(shí),程序會(huì)判斷你是否正確的重寫了父類的對(duì)應(yīng)方法。

而且加上此注解后,程序會(huì)自動(dòng)屏蔽父類的方法。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細(xì)使用方法與實(shí)例

    Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-02-02
  • springboot之使用logback日志框架的圖文教程

    springboot之使用logback日志框架的圖文教程

    這篇文章主要介紹了springboot之使用logback日志框架的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • springboot讀取.properties配置文件中的map和list類型配置參數(shù)方式

    springboot讀取.properties配置文件中的map和list類型配置參數(shù)方式

    這篇文章主要介紹了springboot讀取.properties配置文件中的map和list類型配置參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Spring boot Mybatis 整合(完整版)

    Spring boot Mybatis 整合(完整版)

    本文是一篇比較完整的版本通過圖文并茂的形式給大家介紹了Spring boot Mybatis 整合過程,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-09-09
  • Spring Boot如何防止重復(fù)提交

    Spring Boot如何防止重復(fù)提交

    這篇文章主要為大家詳細(xì)介紹了Spring Boot如何防止重復(fù)提交,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 如何使用java判斷是不是數(shù)字

    如何使用java判斷是不是數(shù)字

    這篇文章主要給大家介紹了關(guān)于如何使用java判斷是不是數(shù)字的相關(guān)資料,判斷一個(gè)字符串是否為數(shù)字是Java開發(fā)中很常見的業(yè)務(wù)需求,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象

    使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象

    這篇文章主要為大家詳細(xì)介紹了使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java實(shí)現(xiàn)文件和base64相互轉(zhuǎn)換

    java實(shí)現(xiàn)文件和base64相互轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)文件和base64相互轉(zhuǎn)換,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 指定jdk啟動(dòng)jar包的方法總結(jié)

    指定jdk啟動(dòng)jar包的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于指定jdk啟動(dòng)jar包的方法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 基于spring boot實(shí)現(xiàn)一個(gè)全局異常處理器

    基于spring boot實(shí)現(xiàn)一個(gè)全局異常處理器

    在項(xiàng)目開發(fā)中,我們可以基于spring boot提供的切面特性,來很輕松的實(shí)現(xiàn)全局異常的處理,所以本文主要為大家介紹了如何基于spring boot實(shí)現(xiàn)一個(gè)全局異常處理器,有需要的可以參考下
    2023-09-09

最新評(píng)論

青海省| 内丘县| 自治县| 呼图壁县| 娱乐| 宿州市| 武安市| 钟祥市| 门头沟区| 石门县| 绥中县| 博罗县| 噶尔县| 霍邱县| 武冈市| 冕宁县| 札达县| 精河县| 余姚市| 柘荣县| 从化市| 黔江区| 宾阳县| 梅州市| 海南省| 卫辉市| 宣城市| 普兰店市| 龙游县| 吉安县| 夏津县| 安塞县| 莎车县| 定结县| 甘洛县| 江山市| 太湖县| 德兴市| 玉门市| 察隅县| 古丈县|