3

Java試験の準備をしています。次の質問に出くわしました

String s = new String ("hello");
Object o = (object) s;

oとはどちらも同じオブジェクトを指す参照であるため、参照を介して参照をs介してオブジェクトにアクセスすることに違いはありますか?so

Objectすべてのオブジェクト ( s によって参照されているものなど) は Javaのサブクラスであり、参照を使用して、スーパークラスlikeによって知られているメソッドとlikesによって知られているメソッドを呼び出すことができると言っても過言ではありません。一方、スーパークラスのオブジェクト参照は、サブクラスのメソッドではなく、それ自身のメソッドのみを呼び出すことができますか? ありがとう。Objectclone()Stringlength()o

4

1 に答える 1

1

違いは、 o を使用すると、文字列にキャストし直さない限り、文字列固有のメソッドを呼び出すことができないことです。

ただし、String クラスで定義されている o で呼び出すメソッドは、新しいバージョンのメソッドを呼び出します。たとえば、o.toString() は「hello」を返しますが、Object.toString() が通常返す記述子ではありません。これをポリモーフィズムと呼びます。

于 2012-05-08T19:03:03.267 に答える