子类对象实例化的全过程
子类继承父类以后,就获取了父类中声明的属性或方法。创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。
当我们通过子类的构造器创建子类对象时,我们一定会调用其父类的构造器,进而调用父类的父类的构造器…直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的父类的结构,所以才可以看到内存中有父类中的结构,子类对象才可以考虑进行调用。
class A {
// 父类的构造方法
public A() {
System.out.println("AAAAAAAAAA");
}
}
class B extends A {
// A的子类B的构造方法
public B() {
//super();//实际上程序在这里会默认添加super()
System.out.println("BBBBBBBBBBB");
}
}
public class Test {
public static void main(String[] args){
Student b = new B() ;
}
}
本文详细阐述了Java中子类对象实例化的步骤,包括如何继承父类属性,如何通过构造器调用父类构造器,直至最终调用Object类的构造器。通过一个简单的例子展示了子类B创建时,如何隐式调用父类A的构造器,进而理解Java对象创建的内部机制。
458

被折叠的 条评论
为什么被折叠?



