1. 程式人生 > >為什麼要過載和重寫?

為什麼要過載和重寫?

過載:在一個類裡面,有兩個或以上的同名方法,它們的引數列表不同,此為過載。

//過載的例子

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處理主要邏輯
	}
}

偶然發現過載和重寫結合使用時,驚歎其巧妙的設計(原諒我是菜鳥)而記錄

不知道寫的啥,等有空再回來理理