如何从子类更改父类中变量的值?

时间:2019-02-21 12:58:53

标签: java

我如何使用子类更改父类中值的值?例如,父类的int值为4,而我希望子类将其值更改为8。

2 个答案:

答案 0 :(得分:1)

该字段可能已初始化为私有,受保护,甚至是静态字段,这些都可能影响可编辑性。

如果已使用设置器在父类中将其初始化为私有,则可以在子类中创建父类的实例。如果您在子类中创建的实例中设置了新值,则它将在任何地方更改值。

参见此父类;

public class Parent{
    private int girl = 4;

    public Parent(){}

    public int getGirl() {
        return girl;
    }

    public void setGirl(int girl) {
        this.girl = girl;
    }
}

还有这个Child类;

public class ChildClass{
    Parent parent = new Parent();
    parent.setGirl(8);

}

答案 1 :(得分:1)

首先,为了澄清(尽管可能很挑剔):您无需更改类变量的值。您可以更改类的 instance 变量所引用的值。

如果该类(例如C)扩展了另一个类(例如P),则比P可能有一个protected字段v,您可以更改(因为C可以访问父级的C)。

v

更多可能性:如果该值在所有public class Parent { protected int var = 8; } public class Child extends Parent { public void samething() { var = 4; } } (因此也P)中都相同,则可以使用static fields