Object aThing = new Integer(25);
aThing.toString();
toString
のかのObject
か? (だと思います。)toString
Integer
Integer
Object aThing = new Integer(25);
aThing.toString();
toString
のかのObject
か? (だと思います。)toString
Integer
Integer
Integer
クラスtoString()
が呼び出されます。メソッドの呼び出しは、参照型ではなくオブジェクト型に基づいて常に決定されます。
Steve Kuoがコメントしたように:静的メソッドを除く。
Integer's
toString
と呼ばれます。どのメソッド実装が呼び出されるかは、オブジェクトが割り当てられている変数のタイプではなく、オブジェクト自体のランタイムタイプ(クラス)によって常に決定されます。次のコードでは、両方の呼び出しは同等です。
Integer i = Integer.valueOf(5);
Object o = i;
i.toString(); // "5"
o.toString(); // "5"
このように動作するメソッドは、仮想メソッドと呼ばれます。Javaの非静的メソッドはすべて仮想です。それらは、ポリモーフィズムの重要なメカニズムの1つを提供します。
サブクラスのものは呼び出されるので、Integer
.
のtoString()
は、Integer
と呼ばれるものです。独自のオブジェクトを使用して簡単に証明できます。
toString()
インスタンス化されたクラスの型であるため、整数クラスの が実行されます。