在 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/