我在班级“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
答案 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);
}