黑马程序员技术交流社区

标题: 创建子类对象时,父类是否也在堆内存创建了对象? [打印本页]

作者: 阿里策    时间: 2013-10-9 19:51
标题: 创建子类对象时,父类是否也在堆内存创建了对象?
本帖最后由 阿里策 于 2013-10-10 15:39 编辑

    我通过代码检测知道,当Son s = new Son();创建子类对象s时,代码执行过程是这样的:
(1)加载父类,执行父类静态成员,静态代码块。
(2)加载子类,执行子类静态成员,静态代码块。
(3)父类成员初始化,执行父类构造代码块,父类构造函数。
(4)子类开辟空间,成员初始化,执行子类构造代码块,子类构造函数。


疑问:这里既然父类的构造函数都已经执行了,不就是在堆内存中创建了父类对象了吗?


作者: 喝龙血的我    时间: 2013-10-9 20:33
创建父类对象啊。
先初始化对象的成员变量,在调用父类的构造函数,创建父类对象,再执行子类对象的成员变量,然后在执行子类中的构造函数。没有什么问题啊
作者: To    时间: 2013-10-10 10:45

如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2