4.10 重寫、重寫與重載的區別 -【Java入門--瘋狂Java講義】

重寫(Override)是在子類重寫父類的方法,以滿足子類的特殊要求。

我們有這樣的需求:Bird是所有鳥的父類,父類有一個fly方法,表示飛翔,但是不是所有的鳥都有飛翔的能力,就像鴕鳥就不可以飛翔,這樣,我們就需要對fly方法進行重寫,

class Bird{
	public void fly(){
		System.out.println("自由自在的飛翔...");
	}
}

class Ostrich extends Bird{
	public void fly(){
		System.out.println("我不會飛,但是會跑");
	}
}

class LittleBird extends Bird{}
	
public class Test05 {
	public static void main(String[] args) {
		Ostrich ostrich = new Ostrich();
		ostrich.fly();//我不會飛,但是會跑
		LittleBird lb = new LittleBird();
		lb.fly();//自由自在的飛翔...
	}
}

實現重載要符合以下的要求:

“兩同兩小一大”:方法名相同、參數相同、子類的返回值類型要比父類的更小(具體)、子類拋出的異常要比父類的更小(具體)、子類的訪問權限要比父類的大(寬泛);

實現重寫後,父類的方法子類的實例無法再調用;

實現重寫後,子類的方法可以藉助super關鍵字(下一更新會接觸到)調用父類的方法;

父類的private方法不可以重寫,因爲不能訪問到。


重寫(Override)與重載(Overload)的區別:

兩者本來就沒有聯繫,在面試的時候遇到這個問題的話,分別敘述兩者的特點即可。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章