当对象被实例化后,堆内存先开辟一块空间给子类对象,然后先隐式初始化父类普通变量,然后是子类普通变量,随后子类构造方法在栈中被开辟内存,然后父类构造方法在super语句执行后被开辟内存,接着显式初始化父类普通变量和构造方法,父类构造方法弹栈之后再回到子类构造方法,进行子类显式初始化和构造方法
时间: 2023-05-28 13:04:38 浏览: 155
在实例化对象的过程中需要在内存中开辟空间,这其中就包括栈内存和对内存。
的执行,最后子类构造方法弹栈结束,对象实例化完成。
需要注意的是,如果子类构造方法没有显式调用父类构造方法,则会默认调用父类的无参构造方法,如果父类没有无参构造方法,则会编译报错。此外,如果父类构造方法中有耗时操作或者复杂的初始化操作,可能会影响子类对象的实例化速度。因此,在设计类的时候,需要考虑构造方法的执行顺序和耗时操作的影响。
阅读全文