1

我目前正在研究一个休眠项目(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+

添加 zz

孩子 getx a+

a+child getz null

4

2 回答 2

2

我不明白你在这里期望什么。一切正常。

在您的示例中,您从不调用c.setX,那么您为什么希望它打印除 之外的任何内容a+p指的是完全不同的对象,与 没有关系c。因此,调用p.setx对 没有影响c。如果你想设置c.x,只需调用c.setx("z"). 做多态,因为child扩展parent,你可以调用parent在一个实例上声明的方法child

于 2012-12-06T04:43:58.450 回答
1

您正在两个不同的对象上设置“z”,c并且p. 为了让 'c.getZ()返回zZ,您需要调用c.setx("zZ").

于 2012-12-06T04:44:03.287 回答