為什麼要過載和重寫?
阿新 • • 發佈:2019-01-09
過載:在一個類裡面,有兩個或以上的同名方法,它們的引數列表不同,此為過載。
//過載的例子
void funcA(int a){}
void funcB(int a, int b){}
重寫:子類繼承父類,子類有一個與父類相同引數簽名的方法,並且需要重新定義此方法,此為重寫。
//重寫的例子
Class Father{
void func(){}
}
Class Sun{
@Overried
void func(){}
}
過載與重寫的結合:
Interface AService{ public void funcA(int a); public void funcA(int a, String s); } public class AImpl implements AService{ @Override public void funcA(int a){ //這個方法主要是用來被重寫的,重寫後不影響funcA方法的主要處理邏輯 String s = "str"; this.funcA(a,s); } @Override public void funcA(int a, String s){ //這裡可以用來處理funcA方法的主要業務 } } Interface Bservice{ public void funcA(int a); } public class BImpl extends AImpl implements Bservice{ @Override public void funcA(int a){ //此處重寫了AImpl的方法funcA(int a),加上自己的處理邏輯,然後再呼叫funcA的主要處理方法 //…… //自己的處理邏輯 String s = "str"; funcA(a,s);//呼叫funcA處理主要邏輯 } }
偶然發現過載和重寫結合使用時,驚歎其巧妙的設計(原諒我是菜鳥)而記錄
不知道寫的啥,等有空再回來理理