これがJavaで機能する理由がわかりません:
オブジェクトに整数オブジェクトがある場合、例:
Object myIntObj = new Integer(5);
今私がする場合:
System.out.println(myIntObj);
出力は次のとおりです。5
Integer クラスには toString メソッドの ovveride があるようになりましたが、この場合は異なります (私は思います)。ポリモーフィズムの場合、「親変数」に「子オブジェクト」がある場合、オブジェクトはその実際の型 (この場合は整数) を変更しませんが... (オブジェクト変数で) のメソッドを使用するだけです。オブジェクトクラスなので、次のように書くとどうなりますか?
System.out.println(myIntObj);
このオブジェクトの参照ではなく、数字の 5 を直接見ることができますか? オブジェクトクラスの toString メソッドは、デフォルトではオブジェクトの参照の文字列のみを返すためです。
お気に入り:
Object currentPlayer = new Player();
System.out.println(currentPlayer);
この場合、オブジェクト クラスで toString メソッドが呼び出されるため、出力は Player オブジェクトの参照です。
では、前の例では、参照が表示されず、直接番号が表示されるのはなぜですか? 論理的には、ポリモーフィズムのルールは次のように述べています。「親」変数に「子」オブジェクトがある場合、このオブジェクトは内部で同じままですが、オブジェクトのインスタンスのように使用されるため、単にクラスオブジェクトとオブジェクトのメソッドだけなので、参照が表示されずに直接番号が表示されるのは本当に奇妙です。
私の言いたいことを理解していただければ幸いです。