父类和子类执行顺序
public class Animal { static{ System.out.println("父类的静态方法"); } { System.out.println("执行父类的构造代码块"); } public Animal(){ System.out.println("执行父类的构造方法"); } public void A(){ System.out.println("执行父类的A方法"); } } 子类: public class Cat extends Animal{ static{ System.out.println("子类的静态方法"); } { System.out.println("执行子类的构造代码块"); } public Cat(){ System.out.println("执行子类的构造方法"); } @Override public void A() { System.out.println("执行子类的A方法"); } public static void main(String[] args) { Cat c = new Cat(); c.A(); } } 父类的静态方法 子类的静态方法 执行父类的构造代码块 执行父类的构造方法 执行子类的构造代码块 执行子类的构造方法 执行子类的A方法
二、分析
可以看出几个重点:
1、静态方法首先执行,先父类,后子类;
2、其次,执行构造代码块和构造方法,先父类,后子类;
3、最后,执行子类的方法