下面介紹一下重寫(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 子類若繼承...