请问父类/子类中的方法谁先加载?
在执行main方法之前,会把本类的方法加载到方法区,意味着先执行静态代码块,然后就开始new对象,
new对象之前会先执行构造方法,在前面学习中知道构造方法体执行之前会先执行构造块;
子类和父类谁先加载?
肯定是先加载父类,因为到最后在测试类中找不到父类就蒙了。
先执行父类的静态代码块-》在执行子类的静态代码块-》父类的构造块-》父类的无参构造方法-》子类的构
造块-》子类的无参构造方法
我们前面讲过在创建子类对象时,由于子类对象里面包含着一个父类类型的对象,所以为了完整创建子类类型
的对象必须先创建父类的对象,创建父类对象时必须创建构造方法,只是默认调用无参构造。(所以由此可得
这时候应该先调用父类的无参构造)
如下图所示:
父类:
子类:
先执行父类的静态代码块,再执行子类的静态代码块。
执行父类的构造块,执行父类的构造方法体。
执行子类的构造块,执行子类的构造方法体。