Java

java子类覆盖父类属性怎么实现

小亿
196
2023-11-20 21:08:26
栏目: 编程语言

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

0
看了该问题的人还看了