子类实例化对象的全过程:
我们只造了一个对象dog,但是dog的构造器直接或间接的调用了直接父类或间接父类的构造器来加载他们的属性和方法
子类对象实例化全过程图示:
-
从结果上来看:(继承性)
子类继承父类以后就获取了父类中声明的属性和方法
创建子类的对象,在堆空间中,就会加载所有父类中声明的属性,同时在方法区加载方法
-
从过程来看:
当我们通过子类的构造器创建子类的对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有父类的构造器,所以才可以看到内存中有父类的结构,子类对象才可以考虑进行调用这些结构
-
明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建了一个对象,即为new的子类对象