从子类构造函数调用超级构造函数是否在内存中创建超类的对象?

时间:2013-06-23 17:23:16

标签: java object constructor super

Test类中,我使用new关键字创建类B的对象 - 在那里调用类B的构造函数:

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的对象?

这个超类对象是否会与内存中的子类对象一起创建?

1 个答案:

答案 0 :(得分:2)

构造函数不“创建”对象实例,它初始化它。 new运算符创建新实例(B)和调用的各种构造函数(本例中为B()和A())初始化新实例B。

相关问题