java子类和父类中静态块、非静态块、构造函数的执行顺序
1 public class qqqq extends Parent{ 2 3 public static void main(String[] args) { 4 new Child(); 5 } 6 } 7 class Parent{ 8 static{ 9 System.out.println("父类的静态块执行"); 10 } 11 { 12 System.out.println("父类的非静态块执行"); 13 } 14 public Parent(){ 15 System.out.println("父类的构造函数执行"); 16 } 17 } 18 class Child extends Parent{ 19 static{ 20 System.out.println("子类的静态快执行"); 21 22 } 23 { 24 System.out.println("子类的非静态块执行"); 25 } 26 public Child(){ 27 System.out.println("子类的构造函数执行"); 28 } 29 30 }
输出:
父类的静态块执行
子类的静态快执行
父类的非静态块执行
父类的构造函数执行
子类的非静态块执行
子类的构造函数执行