子类对象实例化的全过程
子类继承父类以后,就获取了父类中声明的属性或方法。创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。
当我们通过子类的构造器创建子类对象时,我们一定会调用其父类的构造器,进而调用父类的父类的构造器…直到调用了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() ;
}
}