java程序执行顺序如下:
1.类中所有属性的默认值(一举而成)
2. 父类静态属性初始化,静态块,静态方法的声明(按出现顺序执行)
3. 子类静态属性初始化,静态块,静态方法的声明 (按出现顺序执行)
以上是(类加载过程,不涉及构造方法)
4. 调用父类的构造方法,
首先父类的非静态成员初始化,构造块,普通方法的声明(按出现顺序执行)
然后父类构造方法
5. 调用子类的构造方法,
首先子类的非静态成员初始化,构造块,普通方法的声明(按出现顺序执行)
然后子类构造方法
其中:
1-3:类加载过程,不涉及构造方法
1-5: 实例化过程,涉及构造方法
参考文章:
https://www.cnblogs.com/greatfish/p/5771548.html