java对象初始化顺序分析

最近在巩固自己的java基础,发现好多东西都忘了,好好学习吧

上 测试代码

父类

package com.hessian.client;

public class B {
	public B(){
		System.out.println(((A)this).a);
	}
	static{
		System.out.println("B-----------");
	}
}
 

子类

  public class A extends B {

	public int a=100;
	public A(){
		System.out.println(this.a);
	}
	static{
		System.out.println("a----------");
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		A a=new A(); 
	}

直接上输出结果

B-----------
a----------
0
100
 

我们看到初始化顺序是 父静态 子静态 父成员变量 父构造函数  子成员变量  子构造函数

猜你喜欢

转载自davidxiaozhi.iteye.com/blog/1538894