1. ホーム
  2. java

[解決済み] Java - ベースクラスでSuper.toString()メソッド?

2022-02-06 01:57:54

質問

ベースクラスでSuper.toString()を記述する理由とその戻り値、そしてその理由は何でしょうか?

これは私のコードです。

class Person    {
public String toString()    {
        return super.toString() /*+ "->" + "Person" + name + "------"*/;
        }
}

何を返すべきですか? そして、私はJavaの初心者です。

どのように解決するのですか?

Personクラスは、親クラスを継承してtoString()メソッドを定義する必要があります。そうでない場合は、親クラスはObjectクラスであり、このクラスのネイティブメソッドが使用されます。

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

つまり、オブジェクトのインスタンスであるクラスの名前、アットマーク @、オブジェクトのハッシュコードの符号なし16進数表現からなる文字列を得ることができます。 すべてのクラス(Objectクラスのサブクラス)は、このメソッドをオーバーライドすることが推奨されます。