最近 Gao 先生のビデオを見ていたときに、よく理解できなかった知識ポイントを見つけました。コードは次のとおりです:
出力結果は次のとおりです:
オブジェクトも出力しますが、自作オブジェクトはハッシュ コードを出力するのに、Date クラス オブジェクトは現在時刻を出力するのはなぜですか?
Xiaomengxin さんは友人に疑問を解消するよう求めています。とても感銘を受けました。
Println メソッドは、出力オブジェクトの toString メソッドを呼び出します。オブジェクトが toString メソッドを定義していない場合は、継承チェーンに従って親クラスを見つけます。 Date には toString メソッドが定義されているため、出力はフォーマットされた属性情報になります。 カスタム Dog クラスには toString メソッドがないため、Object の親クラスの toString メソッドが使用されます
オブジェクトを印刷する場合、その toString メソッドの戻り値が toString メソッドをオーバーライドして印刷されます。 Dog が toString をオーバーライドしない場合は、親クラス Object の toString メソッドを呼び出します
Date クラスは Object 親クラスの toString() をオーバーライドしますが、独自のクラスはオーバーライドしません。 。 。 Dateクラスのソースコードを見てみましょう
toString メソッドは書き直されています。ソース コードで自分で確認できます。
Println メソッドは、出力オブジェクトの toString メソッドを呼び出します。オブジェクトが toString メソッドを定義していない場合は、継承チェーンに従って親クラスを見つけます。
Date には toString メソッドが定義されているため、出力はフォーマットされた属性情報になります。
カスタム Dog クラスには toString メソッドがないため、Object の親クラスの toString メソッドが使用されます
オブジェクトを印刷する場合、その toString メソッドの戻り値が toString メソッドをオーバーライドして印刷されます。 Dog が toString をオーバーライドしない場合は、親クラス Object の toString メソッドを呼び出します
Date クラスは Object 親クラスの toString() をオーバーライドしますが、独自のクラスはオーバーライドしません。 。 。 Dateクラスのソースコードを見てみましょう
toString メソッドは書き直されています。ソース コードで自分で確認できます。