java - 从子类构造函数调用 super 构造函数是否会在内存中创建父类(super class)的对象?

标签 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,那么在上面的例子中,当使用super()调用父类(super class)A的构造函数时,它会创建类 A 也是吗?

这个父类(super class)对象会与内存中的子类对象一起创建吗?

最佳答案

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

关于java - 从子类构造函数调用 super 构造函数是否会在内存中创建父类(super class)的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263330/

相关文章:

java - 如何在java中重新链接树节点

java - Spy对象值不随when改变,thenReturn

C++:在继承链中放置构造函数的位置?

java - 如果我需要初始化子类,如何使用抽象类?

java - 如何使用 Guice 模块实例化类中的多个字段之一?

java - 如何从数组中获取值以在另一个类中使用?

JavaFX 2 调试 CSS

java - 如何使用 JDBI SQL 对象 API 创建一对多关系?

javascript - 在ajax请求中传递对象

javascript - 将变量同时用作函数和对象实例