`
Xgeeeeek
  • 浏览: 21949 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于类初始化过程中各个元素的初始顺序

    博客分类:
  • java
阅读更多
public class Father {
	public static Display a1 = new Display("a1");
	public Display b = new Display("b");
	static{
		Display a2 = new Display("a2");
	}
	public Father(){
		Display c = new Display("c");
	}
}

 

public class Child extends Father{
	public static Display A1 = new Display("A1");
	public Display B = new Display("B");
	static{
		Display A2 = new Display("A2");
	}
	public Child(){
		Display C = new Display("C");
	}
}

 

public class Display {
	public Display(String name){
		System.out.println(name);
	}
}

 

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Child child = new Child();
	}

}

 运行结果:

a1
a2
A1
A2
b
c
B
C

 总结:

0.静态变量和静态代码块是与类相关的,所以优先于其他实例元素,如实例变量和构造函数.

1.实例变量优先于构造函数.

2.父类元素优先于子类元素.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics