1.重寫
重寫必須滿足如下條件: (1)方法的返回值類型必須相同,。 (2)方法的參數(shù)個(gè)數(shù)必須相同,。 (3)方法的參數(shù)對(duì)應(yīng)的數(shù)據(jù)類型必須相同。 (4)子類方法不得降低父類同名方法的訪問級(jí)別,。 另外
- 被重寫的方法發(fā)生在父類與子類之間
- 方法名,。參數(shù)列表,返回值類型相同
- 重寫的訪問修飾符的權(quán)限一定要大于被重寫的訪問修飾符的權(quán)限
- 重寫方法一定不能拋出 新的異常,或者比重寫方法更寬泛的異常。
- 被final關(guān)鍵字修飾的方法不能被重寫
- 構(gòu)造方法不能被重寫
- 子類的訪問級(jí)別不能低于父類 的訪問級(jí)別
2.重載
- 參數(shù)類型,。順序和個(gè)數(shù)至少有一個(gè)不同
- 重載發(fā)生在一個(gè)類中
- 不能重載只有返回值不同的方法名
- 構(gòu)造方法可以重載
3.重載(Overload) 和重寫(Override) 的區(qū)別?
-
方法的重載和重寫都是實(shí)現(xiàn)多態(tài)的方式,區(qū)別在于前者實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性,而后者實(shí)現(xiàn)的是運(yùn)行時(shí)的多態(tài)性,。 -
重載發(fā)生在一個(gè)類中,同名的方法如果有不同的參數(shù)列表(參數(shù)類型不同、參數(shù)個(gè)數(shù)不同或者二者都不同)則視為重載;重寫發(fā)生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的參數(shù)列表,有兼容的返回類型,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則),。 -
重載對(duì)返回類型沒有特殊的要求,不能根據(jù)返回類型進(jìn)行區(qū)分,。
|