2

次の質問に何か欠けているのではないかと思っていました。私はその後、私の答えで質問を提起しました。

次のメソッドに渡すことができるオブジェクトの種類は何ですか? このメソッド内の obj でどのメソッドを呼び出すことができますか?

public void doThis (Object obj)
{
    // some code
}

私の答え:

上記のメソッドで渡すことができるオブジェクトのタイプは、現在のクラスのスーパー クラスである実際のクラスからインスタンス化されたオブジェクトと、現在のクラス自体でインスタンス化されたオブジェクトです。さらに、他の実際のクラスからインスタンス化されたオブジェクトを、現在のクラスまたはそのスーパー クラスの 1 つに型キャストして、メソッド doThis() のパラメーターとして許可することができます。

メソッド内で呼び出すことができるメソッドには、現在のクラス内の public、protected、または private メソッドと、スーパークラスから継承されたメソッドが含まれます。

それが正しいか?

4

3 に答える 3

7

次のメソッドに渡すことができるオブジェクトの種類は何ですか?

それ自体Objectを含むのサブクラス。Object

このメソッド内の obj でどのメソッドを呼び出すことができますか?

Objectクラスで定義された public/protected メソッド(例: toStringnotifywaitなど)。明示的にダウンキャストしない限り、これにはサブクラスで定義されたメソッドは含まれません。

于 2012-09-04T14:59:21.017 に答える
1

あなたは本当に単純な答えを誇張しています。渡すことができる引数はdoThis、タイプのオブジェクトObjectまたはそのサブクラスのいずれかです。これがすべてです(プリミティブ型を除く)。

内部doThisでは、クラスやスーパークラスのメソッドだけでなく、ほとんどのメソッドを呼び出すことができます。たとえば、System.out.println().

于 2012-09-04T15:01:10.363 に答える
0

あなたの答えは間違っています。

の任意のサブクラスをObjectこのメソッドに渡すことができます。Object配列を含むすべてのオブジェクトは のサブクラスです。Object渡されると、最初に型キャストしない限り、そのクラスで定義された任意のメソッドを呼び出すことができます。

于 2012-09-04T15:00:11.097 に答える