Java面試-重載與重寫的區別

Java面試-重載與重寫的區別

重載 override:

發生在子類和父類中,子類將父類中“方法名、參數列表相同”的方法進行重新實現。

其要求是:返回值範圍小於等於父類,拋出的異常範圍小於等於父類, 訪問修飾符範圍大於等於父類;如果父類方法訪問修飾符爲 private 則子類就不能重寫該方法。 

重寫 overwrite:

發生在同一個類中,對同名函數的不同實現方法。

要求是:參數類型不同、個數不同、順序不同,方法返回值和訪問修飾符可以不同,發生在編譯時。   

 

重載 override的代碼:父類動物 和 子類貓 的實現

父類Animal類


public class Animal {
	String kind="";
	String name="";
	int old;
	
	void setKind(String kind)
	{
		this.kind=kind;
	}
	String getKind()
	{
		return this.kind;
	}
	void run()
	{
		System.out.println("I am running!");
	}
}

子類Cat類


public class Cat extends Animal{
	
	public Cat()
	{
		super();
		
	}
	
	public void run()//重載了父類中的run方法
	{
		System.out.println("Running!!");
	}
	
}

重寫 overwrite 的代碼:父類動物重寫run方法 同名函數 不同的參數,不同的實現方式


public class Animal {
	String kind="";
	String name="";
	int old;
	
	void setKind(String kind)
	{
		this.kind=kind;
	}
	String getKind()
	{
		return this.kind;
	}
	void run()
	{
		System.out.println("I am ,"+kind+" running!");
	}
	void run(int speed)
	{
		System.out.println("I am  running with speed"+speed);
	}
}

 

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