从子类返回数据

时间:2012-11-07 19:33:31

标签: java inheritance return superclass super

我在班级“staff”中有一个子类“shopStaff”。我有一个meathod getPerson,我需要将人员中的数据集和shopStaff中的数据集作为单个字符串发送。

这是我的代码

//在员工

public String getPerson()
{
    return format(name) + format(yearJoined);
}

//在shopStaff

public String getPerson()
{
    super.getPerson();
    return format(department);
}

然而,当我在子类中调用getPerson meathod时,它只返回部门信息,而不是名称和yearjoined(我只在超类中设置。

当我使用超级时,我想。 meathod它将返回层次结构中上面的类中的所有内容。这不是这种情况吗?如果没有人能告诉我如何访问超类中的信息集?

由于

CJ

4 个答案:

答案 0 :(得分:2)

您的当前super.getPerson()方法中的return语句不会返回getPerson()的返回值。它只是丢失在您的代码中。

您需要更改shopStaff方法以使用子类return语句返回超类值: -

public String getPerson()
{
    return super.getPerson() + format(department);
}

答案 1 :(得分:2)

致电时:

super.getPerson();

返回被丢弃,因为它没有存储在任何地方。你想要这样做:

//in shopStaff
public String getPerson() {
  return super.getPerson() + format(department);
}

答案 2 :(得分:1)

public String getPerson()
{
    String fromSuper=super.getPerson();
    return fromSuper + format(department);
}

答案 3 :(得分:0)

除非您在子类中阅读并使用它,否则调用super将无法获取数据。

可能会像这样:

public String getPerson()
{
    String person = super.getPerson();
    return person+format(department);
}