Java是一門面向對象的編程語言,其中有兩個重要的概念:重寫和重載。這兩個概念都是為了提高代碼的復用性和可讀性。
首先,我們來看一下重寫。重寫是指子類對父類中已有的方法進行重新定義,也就是覆蓋掉父類中的方法。子類中重寫的方法必須與父類中被重寫的方法具有相同的名稱、參數列表和返回類型。下面是一個例子:
class Animal { public void eat() { System.out.println("Animal eats."); } } class Cat extends Animal { @Override public void eat() { System.out.println("Cat eats fish."); } } public class Main { public static void main(String[] args) { Animal animal = new Animal(); Cat cat = new Cat(); animal.eat(); // Output: Animal eats. cat.eat(); // Output: Cat eats fish. } }
在上述例子中,Animal類中有一個eat()方法,而Cat類繼承自Animal類并重寫了eat()方法。當我們分別調用animal.eat()和cat.eat()時,它們輸出的結果不同,因為cat對象重寫了eat()方法。
接下來,我們來看一下重載。重載是指在一個類中定義多個同名的方法,但它們的參數個數、順序或類型不同。重載的方法在編譯時就確定了調用哪個方法。下面是一個例子:
class Calculation { public int add(int x, int y) { return x + y; } public double add(double x, double y) { return x + y; } } public class Main { public static void main(String[] args) { Calculation calculation = new Calculation(); int result1 = calculation.add(1, 2); double result2 = calculation.add(1.0, 2.0); System.out.println("result1 = " + result1); // Output: result1 = 3 System.out.println("result2 = " + result2); // Output: result2 = 3.0 } }
在上述例子中,Calculation類中定義了兩個同名的add()方法,但它們的參數類型不同。當我們分別傳入整數和小數時,調用的是不同的方法,返回的結果也不同。
以上就是Java中重寫和重載的例子,它們都是非常常見的代碼技巧,在實際的開發中都會經常用到。