在Java中,子類可以通過繼承父類的屬性并重新定義它們來覆蓋父類的屬性。子類可以使用super
關鍵字引用父類的屬性,并通過@Override
注解來標注要覆蓋的方法。
以下是一個示例代碼,展示了如何在子類中覆蓋父類的屬性:
class Parent {
protected String name;
public Parent(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Child extends Parent {
private int age;
public Child(String name, int age) {
super(name);
this.age = age;
}
@Override
public String getName() {
return super.getName() + " Jr.";
}
public int getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
Parent parent = new Parent("John");
System.out.println(parent.getName()); // Output: John
Child child = new Child("Mike", 10);
System.out.println(child.getName()); // Output: Mike Jr.
System.out.println(child.getAge()); // Output: 10
}
}
在上面的示例中,Child
類繼承了Parent
類,并重新定義了getName()
方法來覆蓋父類的屬性。在Child
類的getName()
方法中,我們通過super.getName()
來訪問父類的屬性,并在其后面添加了" Jr."來修改返回結果。
注意,為了能夠覆蓋父類的屬性,子類必須具有相同的名稱和參數列表的方法。而且,子類的訪問修飾符不能低于父類的訪問修飾符。在上面的示例中,Child
類的getName()
方法使用了@Override
注解來明確表示該方法是對父類方法的覆蓋。