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

Java中final、static關(guān)鍵字與方法的重寫(xiě)和繼承易錯(cuò)點(diǎn)整理

 更新時(shí)間:2024年10月23日 09:01:08   作者:小強(qiáng)在此  
這篇文章主要給大家介紹了關(guān)于Java中final、static關(guān)鍵字與方法的重寫(xiě)和繼承易錯(cuò)點(diǎn)的相關(guān)資料,在Java編程中final關(guān)鍵字用于限制方法或類的進(jìn)一步修改,final方法不能被子類重寫(xiě),而static方法不可被重寫(xiě),只能被遮蔽,需要的朋友可以參考下

1.final方法不能被重寫(xiě)

如果父類中的方法被聲明為final,那么這個(gè)方法就不能被子類重寫(xiě)。嘗試在子類中定義與父類final方法同名、同參數(shù)列表、同返回類型(或子類型)的方法會(huì)導(dǎo)致編譯錯(cuò)誤。

class Parent {  
    final void show() {  
        System.out.println("Parent show()");  
    }  
}  

class Child extends Parent {  
    // 編譯錯(cuò)誤:無(wú)法重寫(xiě)final方法  
    @Override // @Override注解會(huì)觸發(fā)編譯器檢查,但在這里不適用  
    void show() {  
        System.out.println("Child show()");  
    }  
}

2.static方法不是重寫(xiě),而是遮蔽

static方法不能被重寫(xiě),因?yàn)樵贘ava中,static方法是類方法,而不是實(shí)例方法。如果你在子類中定義了與父類同名的static方法,那么這實(shí)際上是在子類中遮蔽了父類的static方法,而不是重寫(xiě)它。

class Parent {  
    static void show() {  
        System.out.println("Parent show()");  
    }  
}  

class Child extends Parent {  
    // 這不是重寫(xiě),而是遮蔽  
    static void show() {  
        System.out.println("Child show()");  
    }  
}

3.final與static的組合

當(dāng)一個(gè)方法同時(shí)被聲明為final和static時(shí),它仍然是一個(gè)類方法,不能被重寫(xiě),也不能被子類中的同名方法所遮蔽(因?yàn)閟tatic方法總是通過(guò)類名來(lái)引用,所以子類中的同名static方法會(huì)被視為新的方法,而不是對(duì)父類方法的遮蔽)。但是,由于final的限制,這個(gè)組合實(shí)際上限制了任何嘗試在子類中定義同名方法的嘗試,因?yàn)閒inal禁止了重寫(xiě),而static則使得方法調(diào)用與實(shí)例無(wú)關(guān)。

class Parent {  
    final static void show() {  
        System.out.println("Parent show()");  
    }  
}  

class Child extends Parent {  
    // 嘗試定義同名方法會(huì)導(dǎo)致編譯錯(cuò)誤,因?yàn)閒inal禁止了重寫(xiě),而static使得方法調(diào)用與實(shí)例無(wú)關(guān)  
    // static void show() { ... } // 編譯錯(cuò)誤  
}

4.final與繼承

==final類不能被繼承。==如果你試圖繼承一個(gè)被聲明為final的類,編譯器會(huì)報(bào)錯(cuò)。

final class FinalClass {  
    // ...  
}  

class AnotherClass extends FinalClass {  
    // 編譯錯(cuò)誤:FinalClass是final的,不能被繼承  
}

5.static與繼承

雖然static方法不能被重寫(xiě),==但static變量(字段)是可以被子類繼承的。==不過(guò),子類不能直接修改繼承自父類的static變量(除非在子類中聲明了一個(gè)同名的static變量來(lái)遮蔽它)。子類可以通過(guò)類名來(lái)訪問(wèn)父類的static變量,也可以通過(guò)子類的類名來(lái)訪問(wèn)(如果子類沒(méi)有遮蔽它的話)。

class Parent {  
    static int value = 10;  
}  

class Child extends Parent {  
    // 這里沒(méi)有遮蔽Parent.value  
    // Child.value 仍然引用的是 Parent.value  
}

總之,理解final、static以及它們與重寫(xiě)和繼承之間的關(guān)系對(duì)于編寫(xiě)清晰、可維護(hù)的Java代碼至關(guān)重要。

總結(jié)

到此這篇關(guān)于Java中final、static關(guān)鍵字與方法的重寫(xiě)和繼承易錯(cuò)點(diǎn)整理的文章就介紹到這了,更多相關(guān)final、static關(guān)鍵字方法重寫(xiě)和繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題

    快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題

    這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 詳解spring cloud hystrix 請(qǐng)求合并collapsing

    詳解spring cloud hystrix 請(qǐng)求合并collapsing

    這篇文章主要介紹了詳解spring cloud hystrix 請(qǐng)求合并collapsing,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Java中HashMap集合的常用方法詳解

    Java中HashMap集合的常用方法詳解

    本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于Java中HashMap集合的常用方法詳解,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。下面我們就來(lái)學(xué)習(xí)一下吧
    2021-11-11
  • 3行代碼快速實(shí)現(xiàn)Spring Boot Oauth2服務(wù)功能

    3行代碼快速實(shí)現(xiàn)Spring Boot Oauth2服務(wù)功能

    oauthserver是一個(gè)基于Spring Boot Oauth2的完整的獨(dú)立的Oauth服務(wù)器。僅僅需要?jiǎng)?chuàng)建相關(guān)數(shù)據(jù)表,修改數(shù)據(jù)庫(kù)的連接信息,你就可以得到一個(gè)Oauth服務(wù)器。這篇文章給大家介紹3行代碼快速實(shí)現(xiàn)Spring Boot Oauth2服務(wù)功能,需要的朋友參考下吧
    2018-04-04
  • java獲取日期的方法

    java獲取日期的方法

    這篇文章介紹了java獲取日期的方法,有需要的朋友可以參考一下
    2013-10-10
  • Android Studio更改項(xiàng)目使用的JDK(詳細(xì)步驟)

    Android Studio更改項(xiàng)目使用的JDK(詳細(xì)步驟)

    本文介紹了如何在Android Studio中修改Gradle和JDK的配置步驟,包括打開(kāi)設(shè)置、進(jìn)入Gradle設(shè)置、修改JDK路徑、保存并生效等,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Spring Boot 整合 ShedLock 處理定時(shí)任務(wù)重復(fù)執(zhí)行的問(wèn)題小結(jié)

    Spring Boot 整合 ShedLock 處理定時(shí)任務(wù)重復(fù)執(zhí)行的問(wèn)題小結(jié)

    ShedLock是解決分布式系統(tǒng)中定時(shí)任務(wù)重復(fù)執(zhí)行問(wèn)題的Java庫(kù),通過(guò)在數(shù)據(jù)庫(kù)中加鎖,確保只有一個(gè)節(jié)點(diǎn)在指定時(shí)間執(zhí)行任務(wù),它與SpringScheduler、Quartz等框架結(jié)合使用,本文介紹Spring Boot 整合 ShedLock 處理定時(shí)任務(wù)重復(fù)執(zhí)行的問(wèn)題,感興趣的朋友一起看看吧
    2025-02-02
  • 解決jpa查詢語(yǔ)句自動(dòng)變成了update的問(wèn)題

    解決jpa查詢語(yǔ)句自動(dòng)變成了update的問(wèn)題

    這篇文章主要介紹了解決jpa查詢語(yǔ)句自動(dòng)變成了update的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解SpringMVC加載配置Properties文件的幾種方式

    詳解SpringMVC加載配置Properties文件的幾種方式

    這篇文章主要介紹了詳解SpringMVC加載配置Properties文件的幾種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Spring+Quartz實(shí)現(xiàn)動(dòng)態(tài)任務(wù)調(diào)度詳解

    Spring+Quartz實(shí)現(xiàn)動(dòng)態(tài)任務(wù)調(diào)度詳解

    這篇文章主要介紹了Spring+Quartz實(shí)現(xiàn)動(dòng)態(tài)任務(wù)調(diào)度詳解,最近經(jīng)?;趕pring?boot寫(xiě)定時(shí)任務(wù),并且是使用注解的方式進(jìn)行實(shí)現(xiàn),分成的方便將自己的類注入spring容器,需要的朋友可以參考下
    2024-01-01

最新評(píng)論