詳解Java中方法重寫與重載的區(qū)別(面試高頻問(wèn)點(diǎn))
Java中方法重寫與重載的區(qū)別
重 寫
重 載
子類方法對(duì)父類方法的覆蓋
同一個(gè)類中同名方法的重載(同一類包括從父類繼承的方法)
方法名相同且參數(shù)個(gè)數(shù)類型順序相同
參數(shù)個(gè)數(shù)或類型順序至少滿足一點(diǎn)不同
只允許訪問(wèn)權(quán)限更寬松
訪問(wèn)權(quán)限任意
返回值類型若是基本類型則不允許不同;若是復(fù)合類型則在子類與父類間必須至少存在繼承關(guān)系
返回值類型任意
final修飾的父類,子類不能重寫,反之可以
final任意
靜態(tài)方法與實(shí)例方法不能互相重寫
任意
構(gòu)造方法不能被重寫
構(gòu)造方法可以重載,任意
一句話描述清楚:
重寫注解:@Override 重載注解:@Overload方法的重載是方法名相同,方法返回值和修飾符可以不同,方法的形式參數(shù)增加或減少,同名方法根據(jù)不同傳參來(lái)處理不同邏輯
方法的重寫是方法名相同,方法返回值相同,修飾符相同.方法的形式參數(shù)相同,方法體被重寫,方法體中的代碼功能有所不同,子類對(duì)父類方法重新改造,外部樣子不能改變,內(nèi)部邏輯可以改變
代碼示例:
方法重寫
public void hello(String name){ System.out.println('你好' + name); } //重寫了hello方法,方法體中的代碼實(shí)現(xiàn)的功能已改變 public void hello(String name){ System.out.println('你好,我叫' + name); }
方法重載
public void hello(String name){ System.out.println('你好' + name); } //形式參數(shù)不同,實(shí)現(xiàn)的邏輯不同 public void hello(String name,int age){ System.out.println('你好我叫' + name + '今年' + age + '歲'); } //形式參數(shù)不同,實(shí)現(xiàn)的邏輯不同,并且方法返回值不同,且修飾符不同 private String hello(String name,int age,String sex){ return '你好我叫' + name + '今年' + age + '歲'+'性別'+sex; }
到此這篇關(guān)于Java中方法重寫與重載的區(qū)別(面試高頻問(wèn)點(diǎn))的文章就介紹到這了,更多相關(guān)Java中方法重寫與重載內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 不同瀏覽器對(duì)XML的解析是不同的2. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向3. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單4. 讀寫xml文件的2個(gè)小函數(shù)5. Xml簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理6. XML入門的常見問(wèn)題(一)7. asp讀取xml文件和記數(shù)8. asp使用Weekday函數(shù)計(jì)算項(xiàng)目的結(jié)束時(shí)間9. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案10. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案
