在Java中,override(覆蓋)是指在子類中重新定義父類中已存在的方法。覆蓋的目的是為了在子類中改變方法的實現方式,以滿足子類的特定需求。
要在子類中使用override,需要滿足以下幾個條件:
子類必須繼承自父類。
子類中的方法名、參數列表和返回類型必須與父類中被覆蓋的方法一致。
子類中的訪問修飾符不能比父類中被覆蓋的方法的訪問修飾符更嚴格。例如,如果父類中的方法是public,那么子類中的方法也必須是public。
以下示例演示了如何在Java中使用override:
// 父類
class Parent {
public void print() {
System.out.println("父類的print方法");
}
}
// 子類
class Child extends Parent {
@Override
public void print() {
System.out.println("子類的print方法");
}
}
public class Main {
public static void main(String[] args) {
Parent parent = new Parent();
Child child = new Child();
parent.print(); // 輸出:父類的print方法
child.print(); // 輸出:子類的print方法
}
}
在上面的示例中,Parent
類有一個print
方法,在Child
類中使用@Override
注解覆蓋了父類的print
方法,并改變了其實現。在main
方法中,創建了一個Parent
對象和一個Child
對象,并分別調用了它們的print
方法。由于Child
類覆蓋了print
方法,所以調用child.print()
時將調用子類中的方法,輸出為"子類的print方法"。而調用parent.print()
時將調用父類中的方法,輸出為"父類的print方法"。