天天看點

java重載函數_JAVA函數的重載和重寫

一、什麼是重載(overlording)

在JAVA中,可以在同一個類中存在多個函數,函數名稱相同但參數清單不同。這就是函數的重載(overlording)。這是類的多太性表現之一。

二、重載的作用:

舉個現實生活中的執行個體。假如你是個木工,我要讓你制作桌子(傳回值)。然後,我給了你紫檀木,你就可以制作一張紫檀桌子;我給了你黃花梨,你可以做黃花梨的桌子。這些不同材質的木料,就是參數。傳回的都是桌子,但是具體使用哪個函數,就根據傳入的木料不同來決定的。

是以,可以根據所傳遞進來的不同參數,決定具體調用哪個函數。提高了函數使用的靈活性。

三、重載的特征:

函數名和傳回值類型完全一緻。

參數的數量不同、或數量相同而類型和次序不同,以友善JVM區分到底調用哪個函數。

四、重寫Overriding

“重載”不同于“重寫”

“重寫(覆寫)”概念存在于繼承關系中,子類可繼承父類中的方法而不需要單獨編輯,這提供便捷化。但有的時侯,子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。

父類中存在一個函數,子類中也存在一個同名函數,在了類中對函數重新編輯,做得更具體化。

重寫的規則:

1、在子類中可以根據需要對從父類中繼承來的方法進行重寫。

2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數清單和傳回類型。

3、重寫方法不能使用比被重寫的方法更嚴格的通路權限。

五、執行個體:

建立MyClass類,其中包含兩個類,方法名一樣,參數不一樣

packagestudy;//MyClass類中,有兩個print方法,但是參數不一樣,實作了重載

public classMyClass {public voidprint(String name){

System.out.println("姓名:"+name);

}public void print(String name,intage){

System.out.println("姓名:"+name+"\t年齡:"+age);

}

}

執行個體化MyClass類:

import study.*;public classMyTest {public static voidmain(String[] args)

{

MyClass c=newMyClass();

c.print("張三");

c.print("李四",20);

}

}

輸出結果:

姓名:張三

姓名:李四  年齡:20

如果函數名和參數類型一緻,但函數傳回值類型不一樣,這不叫重載,這是一種錯誤寫法。

因為函數名和參數類型一緻時,JAVA編輯器不知道要傳回哪個結果,是以這種情況是不允許的,如以下代碼為錯誤代碼

package study;

public class MyClass {

public void print(String name){

System.out.println("姓名:"+name);

}

public int print(String x){

System.out.println("姓名:"+name+"\t年齡:"+age);

return 1;

}

}

方法重複,錯誤。

繼續閱讀