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