Java是一種面向對象的編程語言,重載和覆蓋是Java中常見的兩種方法,它們可以讓程序員更加靈活地使用對象和方法。
重載是指在同一個類中,有多個同名方法,但是參數不同,返回類型可以相同也可以不同。例如:
public class Calculator{ public int add(int a, int b){ return a+b; } public double add(double a, double b){ return a+b; } }
在上面的代碼中,我們定義了兩個add方法,但是參數類型不同,一個是int類型,另一個是double類型。這樣,我們在使用時就可以通過參數的不同來調用不同的方法。
覆蓋是指在子類中重寫父類的方法,使其具有相同的方法名、參數列表和返回類型。例如:
public class Animal{ public void eat(){ System.out.println("Animal is eating"); } } public class Cat extends Animal{ public void eat(){ System.out.println("Cat is eating"); } }
在上面的代碼中,Cat類繼承自Animal類,并重寫了eat方法。這樣,我們在使用Cat類創建對象時,調用eat方法時,就會輸出"Cat is eating",而不是"Animal is eating"。
通過重載和覆蓋,我們可以讓程序更加靈活。但是需要注意,在重載方法時,方法名相同但是參數類型不同,如果參數類型相同但是返回類型不同,是無法實現重載的。在覆蓋方法時,子類的訪問權限不能比父類更低。