在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
的对象?
这个超类对象是否会与内存中的子类对象一起创建?
答案 0 :(得分:2)
构造函数不“创建”对象实例,它初始化它。 new
运算符创建新实例(B)和调用的各种构造函数(本例中为B()和A())初始化新实例B。