Java 基礎之 重寫和過載的區別和各自使用

2021-08-21 15:43:44 字數 771 閱讀 1659

過載的時候,方法名要一樣,但是引數型別和個數不一樣,返回值型別可以相同也可以不相同。但是,無法以返回型別作為過載函式的區分標準。

重寫方法的規則:

1)引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。

2)返回的型別必須與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。

3)訪問修飾符的限制一定要大於被重寫方法的訪問修飾符(public>protected>default>private)

4)重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。例如:

父類的乙個方法申明了乙個檢查異常ioexception,再重寫這個方法是就不能丟擲exception,只能丟擲ioexception的子類異常,可以丟擲非檢查異常。

過載方法的規則:

1)必須具有不同的引數列表;

2)可以有不同的返回型別,只要引數列表不同就可以了;

3)可以有不同的訪問修飾符;

4)可以丟擲不同的異常;

總結一下:

override(重寫)

1、方法名、引數、返回值相同。

2、子類方法不能縮小父類方法的訪問許可權。

3、子類方法不能丟擲比父類方法更多的異常(但子類方法可以不丟擲異常)。

4、存在於父類和子類之間。

5、方法被定義為final不能被重寫。

overload(過載)

1、引數型別、個數、順序至少有乙個不相同。 

2、不能過載只有返回值不同的方法名。

3、存在於父類和子類、同類中。

java之過載和重寫

方法的重寫規則 class animal public animal public animal int a class dogextends animal public dog override public 若將public去掉變成defualt修飾的變數,則編譯報錯!void move thr...

java面試專題之過載和重寫的區別

方法過載是指在乙個類中定義多個同名的方法,但要求每個方法具有不同的引數的型別或引數的個數。原則如下 一.方法名一定要相同。二.方法的參數列必須不同,包括引數的型別或個數,以此區分不同的方法體。三.如果引數個數不同,就不管它的引數型別了!四.如果引數個數相同,那麼引數的型別或者引數的順序 必須不同。五...

JAVA 方法過載和重寫區別

一 方法的過載 1.概念 overloading 方法名稱相同,但是引數列表不同 即的型別和個數都不同 通過傳遞引數的不同來完成不同的功能 2.例子 class number public void tell int a public class overloading 輸出結果為4 1二 方法的重...