私はJava試験の準備をしています。 o
とs
が同じオブジェクトを指して、両方の参照ですので、私は、次の質問オブジェクトのスーパークラスとキャストに関する質問
String s = new String ("hello");
Object o = (object) s;
に出くわし、参照o
超える参照s
てオブジェクトにアクセスするに違いはありますか?
私はs
(Sにより、基準となるような)すべてのオブジェクトは、JavaでObject
のサブクラスであることを言って、そのように参照を使用して、あなたがclone()
のようなスーパーObject
で知られているメソッドを呼び出すことができるようになります右のだろうString
によって知られる方法は、length()
のようなものである。一方、スーパークラスオブジェクトリファレンスo
は、それ自身のメソッドであり、サブクラスのメソッドではないということができますか?ありがとう。
はい、このステートメントは正しいです。 –
あなたは正確です。 – Sheriff
2つの小さなメモ:sを 'Object'に明示的にキャストする必要はありません(アップキャストは常に暗黙的に可能です)。' new String( "hello") 'を作成する必要はありません。 'String s =" hello "'と 's'は' String'オブジェクトへの参照になります。これはコードと同じですが、別の場所に存在します(GCのヒープではなくpermgen ")。 – yshavit