詳解Java中方法重寫與重載的區(qū)別(面試高頻問點)
Java中方法重寫與重載的區(qū)別
重 寫 |
重 載 |
子類方法對父類方法的覆蓋 |
同一個類中同名方法的重載(同一類包括從父類繼承的方法) |
方法名相同且參數(shù)個數(shù)類型順序相同 |
參數(shù)個數(shù)或類型順序至少滿足一點不同 |
只允許訪問權(quán)限更寬松 |
訪問權(quán)限任意 |
返回值類型若是基本類型則不允許不同;若是復(fù)合類型則在子類與父類間必須至少存在繼承關(guān)系 |
返回值類型任意 |
final修飾的父類,子類不能重寫,反之可以 |
final任意 |
靜態(tài)方法與實例方法不能互相重寫 |
任意 |
構(gòu)造方法不能被重寫 |
構(gòu)造方法可以重載,任意 |
一句話描述清楚:
- 重寫注解:@Override
- 重載注解:@Overload
方法的重載是方法名相同,方法返回值和修飾符可以不同,方法的形式參數(shù)增加或減少,同名方法根據(jù)不同傳參來處理不同邏輯
方法的重寫是方法名相同,方法返回值相同,修飾符相同.方法的形式參數(shù)相同,方法體被重寫,方法體中的代碼功能有所不同,子類對父類方法重新改造,外部樣子不能改變,內(nèi)部邏輯可以改變
代碼示例:
方法重寫
public void hello(String name){ System.out.println("你好" + name); } //重寫了hello方法,方法體中的代碼實現(xiàn)的功能已改變 public void hello(String name){ System.out.println("你好,我叫" + name); }
方法重載
public void hello(String name){ System.out.println("你好" + name); } //形式參數(shù)不同,實現(xiàn)的邏輯不同 public void hello(String name,int age){ System.out.println("你好我叫" + name + "今年" + age + "歲"); } //形式參數(shù)不同,實現(xiàn)的邏輯不同,并且方法返回值不同,且修飾符不同 private String hello(String name,int age,String sex){ return "你好我叫" + name + "今年" + age + "歲"+"性別"+sex; }
到此這篇關(guān)于Java中方法重寫與重載的區(qū)別(面試高頻問點)的文章就介紹到這了,更多相關(guān)Java中方法重寫與重載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot快速設(shè)置攔截器并實現(xiàn)權(quán)限驗證的方法
本篇文章主要介紹了SpringBoot快速設(shè)置攔截器并實現(xiàn)權(quán)限驗證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Java數(shù)據(jù)結(jié)構(gòu)之圖的兩種搜索算法詳解
在很多情況下,我們需要遍歷圖,得到圖的一些性質(zhì)。有關(guān)圖的搜索,最經(jīng)典的算法有深度優(yōu)先搜索和廣度優(yōu)先搜索,接下來我們分別講解這兩種搜索算法,需要的可以參考一下2022-11-11Java利用自定義注解、反射實現(xiàn)簡單BaseDao實例
下面小編就為大家?guī)硪黄狫ava利用自定義注解、反射實現(xiàn)簡單BaseDao實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08java線程之使用Runnable接口創(chuàng)建線程的方法
本篇文章介紹了,java中使用Runnable接口創(chuàng)建線程的方法。需要的朋友參考下2013-05-05Springboot + Mysql8實現(xiàn)讀寫分離功能
這篇文章主要介紹了Springboot + Mysql8實現(xiàn)讀寫分離功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Spring使用@Autowired注解靜態(tài)實例對象方式
這篇文章主要介紹了Spring使用@Autowired注解靜態(tài)實例對象方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08