类话语块

类语句块
public class Snippet extends supperone{
	public static void main(String[] args) {
		new Thread() {
			{ setDaemon(true); }
			public void run() {
				System.out.println("acquired");
			}
		}.start();
	}    
}

 

写道
{ setDaemon(true); }

 

就是类语句块;

对象的初始化过程:先初始化父类的静态成员,再初始化子类的静态成员,然后是父类的非静态块,接着是父类的构造方法,然后是子类的非静态块,最后调用子类的构造方法。

 

也就是说创建匿名类Thread的时候,先初始化Thread的静态成员,在初始化匿名类的静态成员,然后是Thread的非静态块,接着是父类的构造方法,然后是子类(匿名类)的非静态块,最后是子类的构造方法。

就是说子类(匿名类)的非静态块可以调用父类的方法,因为父类已经构造完成。