java调用构造函数是否意味着创建实例?
我知道在使用时:
A a = new A();
它在堆中分配一个空间,然后调用构造函数,最后返回引用。 但我对此感到困惑,如果我在另一个构造函数中调用一个构造函数,或者当子构造函数调用它的父构造函数时。这两种方法会创建一系列实例吗?还是一个“新”代表“一个实例”
你可以在下面搜索框中键入要查询的问题!
我知道在使用时:
A a = new A();
它在堆中分配一个空间,然后调用构造函数,最后返回引用。 但我对此感到困惑,如果我在另一个构造函数中调用一个构造函数,或者当子构造函数调用它的父构造函数时。这两种方法会创建一系列实例吗?还是一个“新”代表“一个实例”
# 1 楼答案
当您在构造函数的第一行写入
this
或super
时,这会调用另一个构造函数来执行一些初始化工作。它不会创建单独的实例因此,如果类
A
扩展类B
,并且A
的构造函数调用super()
,这意味着为B
实例预留的内存空间将有额外的初始化负载;但这是在与A
的其他构造函数相同的空间中完成的。所以如果你写A myObject = new A();
,步骤是——myObject
李>