Override,Overload,Overwrite的區別
首先:
Override是方法的覆蓋
overload是方法的重載
Overwrite是方法的重寫
壹,方法的覆蓋(Override)是指子類重寫從父類繼承
來的壹個同名方法(參數、返回值也同),馬克-to-win:此時子類將清除父類方法的影響,實現自身的行為。實在想用原來的,可以用super。
二 ,順便說,overload指同名方法,通過不同的參數樣式***存,有時用這個,有時用那個。參數樣式指,不同的參數類型,不同的參數個數,不同的參數順序,返回
值不起作用。再順便說,比較權威公開的著作,都支持overwrite在java中不存在的說法。作者認為overwrite這個概念,需要正式提出來與
否是看提出它以後,對某種學術現象是否有幫助。override和overload的提出,對於某些現象,大家定義了這兩個名詞以後,解釋起來很容易。而
overwrite顯然不具備這種功效。學術名詞的定義顯然不如compiler更實力派,compiler說怎麽樣就怎麽樣。我們看看下面的壹個實用的
例子。此例子證明,compiler(編譯器)壹定是按照先子類,後父類,先精確匹配,後模糊匹配的順序。
例1.5.3
class AAAMark_to_win {
double f(double x, double yMark_to_win) {
return x * yMark_to_win;
}
double f(int x, double y) {
return x * y*2;
}
}
class BBB extends AAAMark_to_win {
double f(double x, double y)
{
return x + y;