0

クラス「staff」内にサブクラス「shopStaff」があります。スタッフのデータセットとshopStaffのデータセットを単一の文字列として送信する必要があるmeathodgetPersonがあります。

これは私のコードです

//スタッフで

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

//shopStaffで

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

ただし、サブクラスでgetPersonミートホッドを呼び出すと、部門情報のみが返され、名前と参加年(スーパークラスでのみ設定)は返されません。

スーパーを使ったときに思いました。階層の上のクラスからすべてを返します。そうではありませんか?スーパークラスに設定されている情報にアクセスする方法を誰かに教えてもらえませんか?

ありがとう

CJ

4

4 に答える 4

2

fromの戻り値は、現在のメソッドのステートメントでsuper.getPerson()は返されません。それはあなたのコードで失われるだけです。returngetPerson()

shopStaffサブクラスのreturnステートメントでスーパークラスの値を返すようにメソッドを変更する必要があります。

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

スーパーを呼び出すだけでは、サブクラスでデータを読み取って使用しない限り、データは取得されません。

このようなものが機能する可能性があります:

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