子類繼承父類,擁有父類的方法和屬性後,子類在保證繼承的方法在方法名和引數列不變的情況下,對方法的內部實現進行重新定義,這種現象就是方法重寫
重寫比較側重於父子差異
示例父親(father類
)名下有一套三層樓房,後來由兒子(son類
)繼承,繼承之後碰巧拆遷
,三層樓房在兒子這裡變成了拆遷款,這套房子(house方法
)的價值轉換就屬於重寫
class father
}class son extends father
}
在同乙個類中,有多個同名、但不同引數列表(相同引數不同順序)的方法存在現象就是方法過載
最常見的過載應該就是構造方法的過載
示例我掌握了燒菜的技能,當家裡沒菜的時候我只能做泡麵(cook()方法
),有一天買了豬肉,於是我做了乙份紅燒肉(cook(int a)
方法),第二天新買了土豆和牛肉,於是麻溜的做了乙份土豆燉牛肉(cook(int a,string s)
),後台有一天家裡來客人,他們帶來了雞肉和蘑菇於是我就做了小雞燉蘑菇(cook(string s,int a)
)
可以看出同樣是燒菜,但根據不同的配菜可以用同樣的手法做出不同的菜品。這種因菜而變的燒菜方法也是過載
public class cooking
//2:同名、不同引數、無返回型別(與1對比)
public void cook(int a)
//3:同名、不同引數、不同返回型別(與1對比)
public string cook(int a,string s)
//4:同名、相同返回結果、不同引數順序(與3對比)
public string cook(string s,int a)
public static void main(string args)
}
要點
重寫過載
方法名不可修改
不可修改
引數列表
不可修改
必須修改
引數順序
不可修改
可以修改
返回型別
不可修改
可以修改
異常只可降級或刪除
可以修改
訪問許可權
只可降級
可以修改
java中關於過載和重寫的理解
重寫 覆蓋 overwrite 是發生在子類和父類之間的,子類重寫父類的方法。規則 方法名字,方法的引數 引數的個數,型別,順序 返回型別必須一樣,異常不能被擴大,可見性不能縮小。重寫方法只能存在於具有繼承關係中,重寫方法只能重寫父類非私有的方法。子類可以和父類用相同名字的靜態方法,方法名,引數型別...
java中重寫和過載
過載是如 public class myslidingdrawer extends slidingdrawer public myslidingdrawer context context,attributeset attrs,int defstyle 其中myslidingdrawer的2個構造函...
java中的重寫與過載
重寫是子類對父類的允許訪問的方法的實現過程進行重新編寫,返回值和形參都不能改變。即外殼不變,核心重寫!重寫的好處在於子類可以根據需要,定義特定於自己的行為。也就是說子類能夠根據需要實現父類的方法。重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的異常。例如 父類的乙個方法申明了乙個檢查異常 ...