方法過載,重構,覆蓋,重寫的區別
阿新 • • 發佈:2018-12-17
方法過載還是比較好理解的,就是在類的內部,定義多個方法,這些方法的方法名字相同,引數型別和引數個數不同,注意,返回值型別並不能區分過載;看程式碼:
public void show(int a,double b){
}
public void show(double c){
}
public int show(double d){return 1;} //報錯,方法已經定義了
在看方法重寫(override
)
方法重寫和方法覆蓋都是一個道理,發生在子類繼承父類或者實現介面的類,
要求的是
1.方法名字相同,
2.引數個數不同,
3.返回值型別不同 ,
程式碼:
方法重構:
定義:在不改變外界外界訪問的情況下對程式碼進行修改,但是不改變原方法的效果,提高其效能,使程式更加易讀,可維護。
重構是在不改變軟體可觀察行為的前提下改善其內部結構
重構通常不是一次性的,它貫穿軟體的整個生命週期,只要覺得不合理都是重構的時機。
舉個例子就好理解了:
在接手一個遺留專案的時候,我們往往會遇到以下情況
某甲:程式碼看了半天還是看不懂啊,尼瑪,一個方法上千行,心累ing
若干天后,終於看懂程式碼了,但是發現IDE一堆警告,一看提示說存在重複的程式碼,整個專案都是警告,那麼多重複程式碼,不會封裝一下嗎,靠
試著優化下程式碼,改著改著發現好多if-else,還是多層巢狀,每個巢狀的判斷還TM很複雜,想想還是先不改了,萬一改出問題,老子要吃P的(線上故障)
以上情景想必大家一定很熟悉,心底肯定在嘀咕:這麼爛的程式碼哪個孫子寫的,不該了,老子重新寫一套。。。