执行顺序:

1、父类静态块

2、子类静态块

3、父类块

4、父类构造器

5、子类块

6、子类构造器

很基础很简单的知识,但没试过又怎么知道“以为的”是不是正确呢?代码验证:

package com.java.test;

class A {
	public A(){
		System.out.println("父类A构造器");
	}
	{System.out.println("父类A块");}
	static{System.out.println("父类A静态块");}
}

public class B extends A{
	
	public B(){
		System.out.println("子类B构造器");
	}
	{System.out.println("子类B块");}
	static {System.out.println("子类B静态块");}
	public static void main(String[] args)
	{
		new B();
	}
}

输出结果:






本文转载:CSDN博客