Java語言中的重載和重寫是面向?qū)ο缶幊痰暮诵母拍睢V剌d指的是在一個(gè)類中定義多個(gè)方法,這些方法的名稱相同但是參數(shù)列表不同。重寫則是指在子類中定義一個(gè)方法,與父類中的同名方法具有相同的名稱、參數(shù)列表和返回值類型。
// 重載的示例 public class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } // 調(diào)用重載的示例 Calculator c = new Calculator(); int result1 = c.add(2, 3); double result2 = c.add(2.5, 3.5);
在上面的代碼中,Calculator類中定義了兩個(gè)名為add的方法,第一個(gè)方法接受兩個(gè)整型參數(shù),第二個(gè)方法接受兩個(gè)浮點(diǎn)型參數(shù)。由于這兩個(gè)方法參數(shù)列表不同,因此它們可以共存于同一個(gè)類中。在使用Calculator類時(shí),可以根據(jù)傳遞的參數(shù)類型來判斷應(yīng)該調(diào)用哪個(gè)add方法。
// 重寫的示例 public class Animal { public void makeSound() { System.out.println("The animal makes a sound"); } } public class Dog extends Animal { public void makeSound() { System.out.println("The dog barks"); } } // 調(diào)用重寫的示例 Animal animal = new Animal(); animal.makeSound(); // "The animal makes a sound" Dog dog = new Dog(); dog.makeSound(); // "The dog barks"
在上面的代碼中,Animal類定義了一個(gè)名為makeSound的方法,而Dog類繼承了Animal類并重寫了makeSound方法。在使用Animal類時(shí),會調(diào)用原始的makeSound方法;而在使用Dog類時(shí),會調(diào)用重寫后的makeSound方法。