Java語言中,在子類中定義與父類同返同名同參的方法將會出現“重寫(覆寫)”,子類將屏蔽父類的相同方法,調用子類的方法將不會調用到父類的該方法。
許多初學者也許會被“覆寫”一詞迷惑,以為覆蓋掉了父類的方法,其實這兩種方法是同時獨立存在的,只是子父類調用該方法的入口不一樣,彼此互不干擾。
/*
需求:設計一個簡單的java程序,證明子類重寫父類方法的過程
思路: 1、創建父類對象,通過父類對象調用該方法
2、創建子類對象,通過父類對象調用該方法
3、通過子類對象調用該方法
*/
class RerridingTest
{
public static void main(String[] args)
{
Father f = new Father();
f.show();
Child c = new Child();
f.show();//創建子類對象並沒有“覆蓋”掉父類自己的show()方法
c.show();//子類調用同名方法時直接訪問自己定義的方法,並沒有訪問父類的方法
}
}
class Father
{
void show(){
System.out.println("father show run.");
}
}
class Child extends Father
{
void show(){
System.out.println("child show run.");
}
}
/*
總結:重寫過程是
創建子類對象時,因為子類中已有定義該方法,故不從父類繼承該方法;
調用方法時,判斷調用對象在內存中是何種類型,然後到相應類型的方法區中尋找該方法
*/
結果:
總結:重寫過程是 創建子類對象時,因為子類中已有定義該方法,故不從父類繼承該方法; 調用方法時,判斷調用對象在內存中是何種類型,然後到相應類型的方法區中尋找該方法