0

クラスでは、new キーワードを使用してTestクラスのオブジェクトを作成しています-クラスのコンストラクターはそこで呼び出されます:BB

class A{
    public A(){
        //initialization of fields
    }
}

class B extends A{
    public B(){
        super();
    }
}

class Test(){
    public static void main(String... s){
        B b=new B();
    }
}

これは、特定のクラスのコンストラクターが呼び出されるたびに、そのクラスのオブジェクトがメモリ内に作成されるということですか?

質問に対する答えが YES の場合、上記の例では、スーパー クラスのコンストラクターAが を使用して呼び出されたときsuper()に、クラスのオブジェクトも作成されますAか?

このスーパー クラス オブジェクトは、メモリ内のサブクラス オブジェクトと共に作成されますか?

4

1 に答える 1

2

コンストラクターはオブジェクト インスタンスを「作成」するのではなく、初期化します。newオペレーターは (B の) 新しいインスタンスを作成し、呼び出されたさまざまなコンストラクター (この例では B() と A())が B の新しいインスタンスを初期化します。

于 2013-06-23T19:12:01.990 に答える