Java中的覆寫(Override)和重載(Overload)是面向對象程序設計的兩個重要概念。在面向對象程序設計中,一個類可以繼承父類的屬性和方法,而繼承來的方法可以被覆寫和重載,以實現程序的復用和擴展。
覆寫(Override)是指子類重寫父類的方法,以覆蓋或增強父類的方法,達到修改或擴展功能的目的。覆寫的方法必須具有相同的名稱、參數列表和返回類型,但可以修改方法體的實現。例如:
public class Animal { public void speak() { System.out.println("Animal speaks."); } } public class Cat extends Animal { @Override public void speak() { System.out.println("Cat meows."); } }
在上述代碼中,Cat類繼承自Animal類,并覆寫了父類的speak方法,以實現自己的Meows聲音。
重載(Overload)則是指同一個類中方法名稱相同,但參數類型、個數或順序不同的方法,以實現不同的方法功能。例如:
public class MathUtils { public int sum(int a, int b) { return a + b; } public double sum(double a, double b) { return a + b; } public int sum(int a, int b, int c) { return a + b + c; } }
在上述代碼中,MathUtils類中有三個不同的sum方法,它們都有不同的參數類型和個數,可以實現不同類型、不同數量的計算。重載的方法必須具有不同的參數列表,但可以有不同的返回類型。如果只有返回類型不同而參數列表完全相同的方法,則不是重載而是編譯錯誤。
在實際應用中,覆寫和重載可以讓程序更加靈活和可擴展,提高代碼復用和減少冗余代碼。但在實現時需要注意命名規范和參數類型的選擇,以便程序更加清晰易讀。