0

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

这是我的代码

// 在员工中

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

// 在店员中

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

但是,当我在子类中调用 getPerson 方法时,它只返回部门信息,而不是名称和加入年份(我只在超类中设置。

我想当我使用超级。肉食它将返回层次结构中上述类的所有内容。不是这样吗?如果没有,谁能告诉我如何访问超类中的信息集?

谢谢

CJ

4

4 回答 4

2

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

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

public String getPerson()
{
    return super.getPerson() + format(department);
}
于 2012-11-07T19:35:34.513 回答
2

你打电话时:

super.getPerson();

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

//in shopStaff
public String getPerson() {
  return super.getPerson() + format(department);
}
于 2012-11-07T19:36:03.007 回答
1
public String getPerson()
{
    String fromSuper=super.getPerson();
    return fromSuper + format(department);
}
于 2012-11-07T19:35:28.830 回答
0

除非您在子类中读取并使用它,否则仅调用 super 不会获取数据。

可能是这样的:

public String getPerson()
{
    String person = super.getPerson();
    return person+format(department);
}
于 2012-11-07T19:35:14.657 回答