方法重載和重寫的區別


方法重寫(overriding):

  1、也叫子類的方法覆蓋父類的方法,要求返回值、方法名和參數都相同。

  2、子類拋出的異常不能超過父類相應方法拋出的異常。(子類異常不能超出父類異常)

  3、子類方法的的訪問級別不能低於父類相應方法的訪問級別(子類訪問級別不能低於父類訪問級別)

方法重載(overloading):重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是參數卻不相同,方法體也不相同,最常見的重載的例子就是類的構造函數,可以參考API幫助文檔看看類的構造方法

 

/**
	方法重寫(Overriding Method
 */
class OverridingMethod 
{
	public static void main(String[] args) 
	{
		HomeDog hd = new HomeDog("阿黃");
		hd.desc();
	}
}


//基類
class Dog
{
	protected String name;

	public Dog(String name){
		this.name = name;
	}

	protected void desc(){
		System.out.println("I'm a dog");
	}
}


//子類
class HomeDog extends Dog
{
	public HomeDog(String name){
		super(name);
	}

	//重寫父類的方法
	public void desc(){
		System.out.println("這是一只狗,它的名字是"+this.name);
	}
}

  輸出結果為:這是一只狗,它的名字是阿黃

  可見,調用的是子類中的desc()方法,而不是父類的desc,這就是方法的重寫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM