Java之重寫與過載

2021-09-19 16:08:42 字數 799 閱讀 8953

下面介紹一下重寫(override)與過載(overload)的區別:

方法過載是乙個類的多型性表現,而方法重寫是子類與父類的一種多型性的表現。

一、重寫規則:

1)引數類表必須完全與重寫方法相同

2)返回型別與被重寫方法的返回型別可以不同,但是必須試父類返回值的派生類

3)訪問許可權不能比父類找那個被重寫方法的訪問許可權更低。例如:如果父類的乙個方法被宣告為public,那麼在子類中重寫該方法就不能宣告為protected。

4)父類成員方法只能被它的子類重寫。

5)宣告為final的方法不能被重寫

6)宣告為static的方法不能被重寫,但是能夠被再次宣告

7)子類和父類在同乙個包中,那麼子類可以重寫父類的所有方法,除了宣告為private和final的方法。

8)子類和父類不在同乙個包中,那麼子類能夠重寫父類宣告為public和protected的非final方法。

9)重寫的方法能夠丟擲任何非強制異常,無論被重寫的方法是否丟擲異常。但是重寫的方法不能拋出新的強制性異常,或者比被重寫方法宣告的更廣泛的強制性異常,反之則可以。

10)構造方法不能被重寫

11)如果不能繼承乙個方法,則不能重寫這個方法。

二、過載規則

1)被過載的方法必須改變引數列表(引數個數或型別或次序不一樣)

2)被過載的方法可以改變返回型別

3)被過載的方法可以改變訪問修飾符

4)被查哪個在的方法可以宣告新的或更廣的檢查異常

5)方法能夠在同乙個類或者在乙個子類中被過載

6)無法以返回值型別作為過載函式的區分標準

java 過載與重寫

方法過載 同乙個類裡面有多個同名的方法,這些方法除了名字相同,其他地方都可以不相同。例如 class just protected int try1 int i 方法重寫 子類中有乙個方法與父類中的某乙個方法名相同,除了方法體不同,其他地方都是相同的例如 class parent class chi...

java 過載與重寫

先來看下方法過載 overloading 的定義 如果有兩個方法的方法名相同,但引數不一致,哪麼可以說乙個方法是另乙個方法的過載。過載overloading是乙個類中多型性的一種表現。具體說明如下 例項 通過過載 mainclass 類的 printarray 方法輸出不同型別 整型,雙精度及字元型...

JAVA 重寫與過載

重寫 通過類的繼承關係,由於父類中的方法不能滿足新的要求,因此需要在子類中修改從父類中繼承的方法叫重寫 覆蓋 1 方法名 引數列表 返回值型別與父類的一模一樣,但方法的實現不同。若方法名 引數列表相同,但返回值型別不同會有變異錯誤!若方法名 返回值型別相同,引數列表不同,則不叫重寫了。2 子類若繼承...