複製鏈接
請複製以下鏈接發送給好友

重寫

(詞語)

鎖定
C#中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋
中文名
重寫
外文名
Override
實現方法
調用和執行
常用對象
派生類繼承基類

重寫實現方法

通常,派生類繼承基類的方法,因此,在調用對象繼承方法的時候,調用和執行的是基類的實現.但是,有時需要對派生類中的繼承方法有不同的實現.
例如,假設動物類存在"跑"的方法,從中派生出馬和狗,馬和狗的跑得形態是各不相同的,因此同樣方法需要兩種不同的實現,這就需要"重新編寫"基類中的方法。"重寫"基類方法就是修改它的實現或者説在派生類中重新編寫。

重寫簡單應用舉例

//java代碼
//方法重寫
public class Parent {
public void ovel(int i){
/*do something...*/
}
public String ovef(){
/*do something...*/
return "***";
}
}
public class Child extends Parent{
public void ovel(int i){
/*do other something...*/
}
public String ovef(){
/*do other something...*/
return "XXX";
}
}

重寫總結

1、必須是在繼承裏
2、方法名、參數個數和參數類型 都必須相同
3、jdk1.5以後,返回值類型可以與父類相同,也可以與父類不同,但是要求返回值類型是父類的子類。如: 父類的返回值類型是Object類,子類的返回值可以是Object類的子類比如String [1] 
4、派生類重寫的方法的訪問權限不能低於基類的權限
5、派生類拋出的異常應該和基類相等或比基類更小
參考資料