一、過載和重寫的區別
簡單的來說過載是在乙個類中對多型性的表現,重寫是在父類與子類之間中對多型性的表現。1、過載(overloading
):方法名相同,引數列表不同,返回型別可以相同也可以不同。丟擲異常可以不同,修飾符可以不同。
下面就是從原始碼中選取string的getbytes()展現的過載方法:2、重寫(overriding):重寫就是子類對父類的方法進行重新定義。從上面可以看出過載方法名相同,引數個數不同和型別不一樣,並且也可以丟擲不同的異常。當我們呼叫方法的時候通過傳遞的引數來決定具體呼叫那個方法。
子類對父類重寫父類的方法,即他們的方法名及引數、返回型別相同;丟擲異常相同,並且子類重寫的方法修飾許可權不能小於父類的許可權(如果小於則相當於在子類中寫了個新的方法,當父類方法為private許可權時,子類方法無法繼承並重寫)。以上就是過載和重寫的定義和具體的區別。
Java基礎整理(3) 過載與重寫
方法名一致,引數列表中引數的順序,型別,個數不同。過載與方法的返回值無關,存在於父類和子類,同類中。可以丟擲不同的異常,可以有不同修飾符。引數列表必須完全與被重寫方法的一致,返回型別必須完全與被重寫方法的返回型別一致。構造方法不能被重寫,宣告為 final 的方法不能被重寫,宣告為 static 的...
c 學習筆記3 過載
c 允許在同一作用域中的某個函式和運算子指定多個定義,分別稱為函式過載和運算子過載。過載宣告是指乙個與之前已經在該作用域內宣告過的函式或方法具有相同名稱的宣告,但是它們的引數列表和定義 實現 不相同。當您呼叫乙個過載函式或過載運算子時,編譯器通過把您所使用的引數型別與定義中的引數型別進行比較,決定選...
PHP學習筆記3 過載
方法過載 使用魔術方法 描述 讀取不可訪問屬性的值時,get 會被呼叫。語法 public mixed get string name 例子 class student 建立學生類物件 obj new student 訪問私有屬性 echo 的年齡是 歲。描述 再給不可訪問屬性賦值時,set 會被呼...