看看以下场景:
public class ParentClass {
private Integer testVar = 1;
public Integer getTestVar() {
return testVar;
}
public void setTestVar(Integer testVar) {
this.testVar = testVar;
}
}
public class ChildClass extends ParentClass {
private Integer testVar = 2;
@Override
public Integer getTestVar() {
return testVar;
}
@Override
public void setTestVar(Integer testVar) {
this.testVar = testVar;
}
}
public class TestClass {
public static void main(String[] args) {
ChildClass childClass = new ChildClass();
childClass.setTestVar(3);
Gson gson = new Gson();
String str = gson.toJson(childClass);
System.out.println(str);
}
}
在这里,我使用了com.google.gson.Gson包进行 json 转换。它给出以下输出:
{“testVar”:1}
我期望 json 字符串中有 3,但我得到的是 parentClass 的 testVar 变量所持有的值。
孩子的 getTestVar 不应该覆盖父母的对手吗?
是否直接访问实例成员(更改每个类的实例成员的名称,但保持 getter 名称相同证明了这一点)?
如果是,任何人如何直接访问私人成员?
编辑:我已经编辑了这个问题。此版本仅在 json 中显示父级的值。有没有办法获取孩子的实例成员?