(静态)代码块,Java程序初始化的执行顺序一例

Java程序初始化的执行顺序1
父类静态变量—>父类静态代码块—>子类静态变量—>子类静态代码块—>父类非静态变量—>父类非静态代码块—>父类构造方法—>子类非静态变量—>子类非静态代码块—>子类构造方法

class A{
	public A() {
		System.out.println("class A");
	}

	{System.out.println("I'm A class");}
	static {System.out.println("class A static");}
}
public class B extends A {
	public B() {
		System.out.println("class B");
	}

	{System.out.println("I'm B class");}
	static {System.out.println("class B static");}
	public static void main(String[] args) {
		new B();
	}
}

输出

class B static
I'm A class
class A
I'm B class
class B

猜你喜欢

转载自blog.csdn.net/sinat_34524528/article/details/88111021