0
public class B extends A{

    // code goes here
}

public class C extends B{
    public void method1(){
       C c = new C();
    }
}

CはBを拡張し、BはAを拡張しているため、Cのオブジェクトを作成すると、JVMで作成されるオブジェクトの数が増えます。

4

3 に答える 3

2

1つ、Cタイプの。ここに何かを追加して、30記号以上の長さの答えを作成します...

于 2012-12-01T15:40:02.507 に答える
1

答えは1です。Callは、それ自体を拡張new C()する実際に拡張する1つのオブジェクトを作成するため、BおよびAから継承された機能を使用できます。BA

于 2012-12-01T15:40:58.317 に答える
1

1つのオブジェクトが直接作成されます。初期化式またはコンストラクターコードが「new」を使用して他のオブジェクトを作成する可能性があるため、「直接」と言います。

その1つのCオブジェクトを作成すると、4つのコンストラクター呼び出しが発生します。Cのコンストラクターの本体の直前に、Bコンストラクターへの明示的または暗黙的な呼び出しがあります。同様に、BのコンストラクターはAコンストラクターを呼び出します。AコンストラクターはObjectコンストラクターを呼び出します。

オブジェクトはC、B、A、オブジェクトであり、プロセスの終わりまでに、それぞれとして初期化されます。

このプロセスの詳細については、JLSを参照してください。

于 2012-12-01T16:07:45.653 に答える