基本內容
通常,派生類繼承基類的方法,因此,在調用對象繼承方法的時候,調用和執行的是基類的實現.但是,有時需要對派生類中的繼承方法有不同的實現.
例如,假設動物類存在"跑"的方法,從中派生出馬和狗,馬和狗的跑得形態是各不相同的,因此同樣方法需要兩種不同的實現,這就需要"重新編寫"基類中的方法.
"重寫"基類方法就是修改它的實現或者說在派生類中重新編寫
//java代碼
//方法重寫
public class Father {
public void ovel(int i){
/*do something...*/ }
public String ovef(){
/*do something...*/
return "***"; } }
public class Sun extends Father{
public void ovel(int i){
/*do other something...*/ }
public String ovef(){
/*do other something...*/
return "XXX"; } }
總結:重寫— 1、必須是在繼承里, 2、方法名、返回值類型、參數個數和參數類型 都必須相同 3、派生類重寫的方法的訪問許可權不能低於基類的許可權
總結
1、必須是在繼承里
2、方法名、參數個數和參數類型 都必須相同
3、jdk1.5以後,返回值類型可以與父類相同,也可以與父類不同,但是要求返回值類型是父類的子類。如: 父類的返回值類型是Object類,子類的返回值可以是Object類的子類比如String
4、派生類重寫的方法的訪問許可權不能低於基類的許可權
5、派生類拋出的異常應該和基類相等或比基類更小