1. 程式人生 > >【Java】重載(Overload)與重寫(Override)

【Java】重載(Overload)與重寫(Override)

{} 方法 ide jump exce 上一條 內部 https pre

方法的語法

修飾符 返回值類型 方法名(參數類型 參數名){
    ...
    方法體
    ...
    return 返回值;
}

重載(overload)

/**
 * 重載Overload:
 * 同一個類中,多個方法擁有相同的名字,但參數類型以及參數數量必須不一樣。
 * 返回值可相同也可不相同,但單憑返回值不可用來判斷方法之間是否存在。
 */
public class example {
	public void print() {};
	//public String print() {}; 參數類型與上一條方法一樣,返回值不同,無法通過編譯
	public void print(int a) {};
	public void print(String a) {};
}

重寫Override

/**
 * 1. 重寫方法只能存在於父子類間,父子類間的這個方法的參數列表、返回類型必須完全相同
 * 2. 重寫的方法中,子類的權限修飾符必須>=父類的
 * 3. 父類的方法為private時,子類出現同名方法不屬於方法的改寫,只是在子類內部重新定義的一個方法
 * 4. 重寫方法中,子類拋出的異常需要小於等於父類拋出的異常
 *
 */
class animal{
	int num;
	public void eat() {
		System.out.println("fruits");
	};
	private void run() {
		System.out.println("run");
	}
	public void count() throws IOException {}
}

class lion extends animal{
	public void eat() {//屬於改寫
		System.out.println("meat");
	}
	public void run() {//不屬於改寫
		System.out.println("jump");
	}
	//public void count() throws ClassNotFoundException {}; 不能拋出父類方法中沒有的異常
	public void count() throws IOException {} //子類拋出的異常可與父類相同的異常或子異常
}

參考:

https://www.cnblogs.com/jenkinschan/p/5847470.html

【Java】重載(Overload)與重寫(Override)