Java是一種面向?qū)ο蟮木幊陶Z言,其中父類和子類是面向?qū)ο缶幊痰暮诵母拍钪弧T贘ava中,如果子類繼承了父類并且定義了與父類同名的方法,那么該方法將覆蓋父類原有的同名方法。
public class ParentClass { public void doSomething() { System.out.println("父類執(zhí)行的方法"); } } public class ChildClass extends ParentClass { public void doSomething() { System.out.println("子類執(zhí)行的方法"); } }
在上面的代碼中,ChildClass繼承了ParentClass并定義了一個名為doSomething的方法,該方法與父類同名。在實例化ChildClass對象并調(diào)用該方法時,子類定義的doSomething方法將優(yōu)先于父類中的同名方法進(jìn)行執(zhí)行。
在Java中,當(dāng)子類方法覆蓋了父類同名方法時,我們可以使用super關(guān)鍵字調(diào)用父類中被覆蓋的方法。
public class ParentClass { public void doSomething() { System.out.println("父類執(zhí)行的方法"); } } public class ChildClass extends ParentClass { public void doSomething() { super.doSomething(); System.out.println("子類執(zhí)行的方法"); } }
在上述代碼中,子類定義的doSomething方法首先調(diào)用了父類中同名的doSomething方法,然后才執(zhí)行子類中的方法。通過使用super關(guān)鍵字,我們可以在子類方法中調(diào)用父類的同名方法,從而實現(xiàn)父類和子類同名方法的協(xié)作,這對于編寫復(fù)雜的代碼非常有用。