我如何使用子类更改父类中值的值?例如,父类的int值为4,而我希望子类将其值更改为8。
答案 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。