在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
注解来明确表示该方法是对父类方法的覆盖。