您的位置:首页 > 编程语言 > Java开发

JAVA 初始化顺序

2015-11-16 13:53 405 查看

1. 通过一个小例子来看具体代码:

package com.lgl.order;

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

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

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

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

/**
* 父类
* @author lgl
*
*/

class Father {
private F f = new F();  //普通字段
private static StaticF sf = new StaticF();  //静态字段

{   //Father 普通代码块
System.out.println("Father 普通代码块");
}

static {    ////Father 静态代码块
System.out.println("Father 静态代码块");
}

public Father() {
System.out.println("Father 构造方法");
}
}

/**
* 子类
* @author lgl
*
*/

public class Child extends Father {

private C c = new C();  //普通字段
private static StaticC sc = new StaticC();  //静态字段

{   //Child 代码块
System.out.println("Child 普通代码块");
}

static {    //Child 静态代码块
System.out.println("Child 静态代码块");
}

public Child() {
System.out.println("Child 构造方法");
}

public static void main(String[] args) {
Child child = new Child();
}

}


2. 运行结果:



总结,由此可以看出,JAVA 中的初始化顺序为:

父类静态字段(父类静态代码块) > 子类静态字段(子类静态代码块) > 父类普通字段(父类普通代码块) > 父类构造方法 > 子类普通字段(子类普通代码块) > 子类构造方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: