Java中的覆蓋和重載是兩個非常常見的概念。覆蓋(Override)指的是子類中重新定義了父類中已經存在的方法,具有相同的名稱和參數列表。而重載(Overload)指的是在同一個類中定義了多個同名方法,但是它們的參數列表不同。
// 覆蓋示例代碼 class Animal { public void say() { System.out.println("I am an animal."); } } class Dog extends Animal { public void say() { System.out.println("I am a dog."); } } public class Test { public static void main(String[] args) { Animal animal = new Animal(); Dog dog = new Dog(); animal.say(); dog.say(); } } // 輸出結果 I am an animal. I am a dog.
從上面的示例中可以看出,Dog類覆蓋了Animal類中的say方法,當子類實例化之后調用say方法的時候,會調用子類中的方法。
// 重載示例代碼 class Calculation { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } } public class Test { public static void main(String[] args) { Calculation calculation = new Calculation(); int a = 1, b = 2, c = 3; System.out.println(calculation.add(a, b)); System.out.println(calculation.add(a, b, c)); } } // 輸出結果 3 6
上面的示例中,Calculation類中定義了兩個同名的方法add,但是它們的參數列表不同。當調用這兩個方法的時候,Java會根據參數列表的不同自動選擇調用哪一個方法,這就是重載。
上一篇php mcrypt開啟
下一篇php node服務