深入理解java中的重載和覆蓋
說到java中的重載和覆蓋呢,大家都很熟悉了吧,但是呢我今天就要寫這個。
本文主題:
一.什么是重載
二.什么是覆蓋
三.兩者之間的區(qū)別
重載(overload):
在一個類中,如果出現(xiàn)了兩個或者兩個以上的同名函數(shù),只要它們的參數(shù)的個數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。
即當函數(shù)同名時,只看參數(shù)列表。和返回值類型沒關系。
重載使用的時候需要注意:
1、在使用重載時只能通過不同的參數(shù)樣式。例如,不同的參數(shù)類型,不同的參數(shù)個數(shù),不同的參數(shù)順序。
2、方法的異常類型和數(shù)目不會對重載造成影響。
3、對于父類來說,子類可以重載與繼承父類中的方法同名的方法,如果某一方法在父類中是訪問權限是priavte,那么就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。
覆蓋(override):
當子父類中出現(xiàn)了一模一樣的方法時,建立子類對象會運行子類中的方法。好像父類中的方法被覆蓋掉一樣。所以這種情況,是函數(shù)的另一個特性:覆蓋。
什么時候使用覆蓋呢?
當子類繼承父類時,父類的功能內容需要修改時,可以通過覆蓋來實現(xiàn)
在方法覆蓋時,注意兩點:
1、子類覆蓋父類時,必須要保證,子類方法的權限必須大于等于父類方法權限可以實現(xiàn)繼承。否則,編譯失敗。
2、覆蓋時,要么都靜態(tài),要么都不靜態(tài)。 (靜態(tài)只能覆蓋靜態(tài),或者被靜態(tài)覆蓋)YES
3、被final修飾的方法是一個最終方法,不可以被覆蓋。
4、子類覆蓋父類的方法時,只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。
重載和覆蓋的區(qū)別:
1、方法的覆蓋是子類和父類之間的關系,是垂直關系;方法的重載是同一個類中方法之間的關系,是水平關系。
2、覆蓋只能由一個方法,或只能由一對方法產生關系;方法的重載是多個方法之間的關系。
3、覆蓋要求參數(shù)列表相同;重載要求參數(shù)列表不同。
4、覆蓋關系中,調用那個方法體,是根據(jù)對象的類型來決定;重載關系,是根據(jù)調用時的實參表與形參表來選擇方法體的。
以上就是小編為大家?guī)淼纳钊肜斫鈐ava中的重載和覆蓋全部內容了,希望大家多多支持腳本之家~
相關文章
IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項目實現(xiàn)動態(tài)登錄與注冊功能
這篇文章主要介紹了IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項目實現(xiàn)動態(tài)登錄與注冊功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
SpringBoot實現(xiàn)多端口監(jiān)聽的代碼示例
當你需要在同一個Spring Boot應用中,通過不同的端口來提供不同的服務或功能時,就需要實現(xiàn)多端口監(jiān)聽,所以本文給大家介紹了SpringBoot實現(xiàn)多端口監(jiān)聽的方法示例,并有相關的代碼示例供大家參考,需要的朋友可以參考下2024-09-09
SpringBoot詳細分析自動裝配原理并實現(xiàn)starter
相對于傳統(tǒng)意義上的Spring項目,SpringBoot具有開箱即用,簡化配置,內置Tomcat等等等等一系列的特點。在這些特點中,最重要的兩條就是約定優(yōu)于配置和自動裝配2022-07-07
Java利用apache ftp工具實現(xiàn)文件上傳下載和刪除功能
這篇文章主要為大家詳細介紹了Java利用apache ftp工具實現(xiàn)文件上傳下載、刪除功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Spring多數(shù)據(jù)源切換失敗,發(fā)現(xiàn)與事務相關問題
這篇文章主要介紹了Spring多數(shù)據(jù)源切換失敗,發(fā)現(xiàn)與事務相關問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot實現(xiàn)分布式驗證碼登錄方案小結
驗證碼登錄作為一種有效的防護手段,可以防止惡意gongji、暴力pojie等,本文主要介紹了SpringBoot實現(xiàn)分布式驗證碼登錄方案小結,具有一定的參考價值,感興趣的可以了解一下2024-12-12

