我目前正在开发一个hibernate项目(EJB和JSF),我有多个java类。父级的数据正在使用JSF在前端进行更改,但是,它没有在子类中进行更新。我需要访问子类中的数据来进行一些计算。关于如何将变量的值从父类传递给子类的任何想法?
提前致谢
示例:
父类
public class parent {
private String x = "a+";
public String getx(){
return x;
}
public void setx(String x){
this.x = x;
}
}
儿童班
public class child extends parent{
private String z;
public String getZ(){
System.out.print(getx());
return z;
}
}
主要班级
public static void main(String[] args) {
parent p = new parent();
System.out.println("Original" + p.getx());
p.setx("z");
System.out.println(" Add z" +p.getx());
child c = new child();
System.out.println("child getx" +c.getx());
p.setx("zZ");
System.out.println("child getz" +c.getZ());
}
}
结果。 原来a +
添加z z
孩子getx a +
a + child getz null
答案 0 :(得分:2)
我不明白你的期望。一切都很好。
在您的示例中,您从不致电c.setX
,那么为什么您希望它能打印除a+
以外的任何内容? p
指的是完全不同的对象,与c
无关。因此,调用p.setx
对c
无效。如果您想设置c.x
,请致电c.setx("z")
。执行多态,因为child
扩展parent
,您可以在parent
的实例上调用child
中声明的方法。
答案 1 :(得分:1)
您在两个不同的对象c
和p
上设置了'z'。要让“c.getZ()
返回zZ
,您需要致电c.setx("zZ")
。