在Java中,重寫和重載是經常在面試中被問到的概念。這兩個概念都涉及方法的分類,但它們的含義是不同的。
重寫(Override)是指在派生類中創建一個與基類相同的方法,但是具有不同的實現。重寫的方法具有與原有方法相同的名稱和參數列表,但是重新定義了方法的行為。
public class Animal { public void sound() { System.out.println("動物叫聲!"); } } public class Dog extends Animal { @Override public void sound() { System.out.println("狗叫聲!"); } }
重載(Overload)是指在一個類中定義多個具有相同名稱但參數列表不同的方法。重載的方法可以具有不同的返回類型和不同的訪問修飾符,但是必須擁有相同的方法名稱和參數列表。
public class Calculator { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public double add(double a, double b) { return a + b; } public String add(String a, String b) { return a + b; } }
總的來說,重寫和重載都涉及方法的命名和參數,但是它們的用途是不同的。重寫需要在類之間建立關系,而重載則用于給定類中定義不同的方法。在面試中了解這些概念并清楚地解釋它們的區別可以增加成功的機會。