子类对象实例化的全过程
# 子类对象实例化的过程
当我们实例化子类时,会产生一系列过程
思考
1、为什么super(...)和this(...)调用语句不能同时在一个构造器中出现?
2、为什么super(...)或this(...)调用语句只能作为构造器中的第一句出现?
比如下图中的new Dog()
从结果上来看
子类继承父类以后,就获取了父类中声明的属性或方法。
创建子类的对象,在堆空间中,就会加载所有所有父类声明的属性。
从过程上来看
当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,直到调用了java.lang.Object
类中空参的构造器为止。正因为加载过所有的弗雷的结构,搜所以才可以看到内存中有父类的结构,子类对象才可以考虑进行调用。
明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建一个对象,即为new
的子类对象。
帮我改善此页面 (opens new window)
上次更新: 2020/12/18, 12:50:58