Posted on 2010-10-23 19:09
セ軍魂ミ 閱讀(2556)
評論(0) 編輯 收藏
方法重載(Overloading):它是定義在同一個類中,并且方法名稱相同,而參數(shù)的類型及個數(shù)不同。
eg:public class Test{
public static void main(String[] args){
Test c=new Test();
String str=c.connect("He","ll","o");
String str1=c.connect("J","a va");
System.out.println(str);
System.out.println(str1);
}
public String connect(String x,String y,String z){
return x+y+z;
}
public String connect(String x1,String y1){
return x1+y1;
}
}
最后輸出結(jié)果為: Hello
Java
方法重寫/覆寫(Override):他是是發(fā)生在繼承關(guān)系之中,是由子類進行覆寫的,并且方法名稱相同,參數(shù)的類型或個數(shù)需相同,而重寫方法的訪問權(quán)限則不能太嚴格。
優(yōu)點:能夠定義子類中特有的特征
注意:訪問修飾符的限制一定要大于被重寫方法的訪問修飾符即 (public>protected>default>private)
eg: class Father{
public void Speak(){
System.out.println("I'm love son");
}
}
class Son extends Father{
public void Speak(){
System.out.println("I'm love father,too");
}
}
public class Test1 {
public static void main(String[] args){
Father s=new Son();
s.Speak();
}
}
最后輸出結(jié)果為: I'm love father,tooI'm love father,too
若將上例中Father類的speak()方法改為private時,Son類將不能重寫speak()方法,此時在Son類中定義的speak()方法相當(dāng)于一個新的方法,與Father中的speak()方法沒有任何關(guān)系。 而若將上例中Father類的speak()方法聲明為final時,無論該方法的修飾符是public,protected還是默認的,Son類根本不能重寫speak()方法,試圖編譯代碼時,編譯器會報錯。