在Java中,子類和父類可能存在同名方法的情況。這個時候,就需要理解Java中方法重載和覆蓋的概念。
public class Parent{
public void sayHello(){
System.out.println("Hello, I am the parent.");
}
}
public class Child extends Parent{
public void sayHello(){
System.out.println("Hello, I am the child.");
}
}
以上代碼定義了一個父類Parent和一個子類Child,子類繼承了父類的sayHello方法并改寫了該方法。
在程序調(diào)用Child類的sayHello方法時,實際調(diào)用的是Child類的sayHello方法,因為子類的方法會覆蓋掉父類的同名方法。如果要調(diào)用父類的sayHello方法,則需要使用super關(guān)鍵字來調(diào)用。
public class Child extends Parent{
public void sayHello(){
super.sayHello(); //調(diào)用父類的sayHello方法
System.out.println("Hello, I am the child.");
}
}
上述代碼中,使用super關(guān)鍵字調(diào)用了父類的sayHello方法,然后在子類的sayHello方法內(nèi)部添加了自己的代碼實現(xiàn)。
總結(jié):方法重載是指定義了多個同名但不同參數(shù)類型或不同個數(shù)的方法;方法覆蓋是指子類實現(xiàn)了父類同名方法并改寫了該方法。在使用時需要區(qū)分開來,并根據(jù)需要選擇合適的方法來調(diào)用。