java类中构造方法执行的顺序

来源:互联网 发布:js去掉属性值 编辑:程序博客网 时间:2024/05/17 22:56
public class Test2 {    private String name = "aa";    private int age = 2;    public Test2() {        age = 1000;    }    public static  void main(String[] args) {        Test2 t = new Test2();        System.out.println(t.name +  t.age);    }}

通过debug跟中,在构造方法中的内容执行之前,先执行了类属性的赋值,然后才执行的构造方法中的赋值。

初始化子类之前要初始化父类

public class Test2 extends Parent{    private String name = "aa";    private int age = 2;    public Test2() {        age = 1000;    }    public static  void main(String[] args) {        Test2 t = new Test2();        System.out.println(t.name +  t.age);        t.test();    }}class Parent {    private int num = 1;    public Parent() {        System.out.println("parent");    }    public void test() {        System.out.println("parent test");    }}

debug这个执行过程,先执行父类中的属性初始化,然后父类的构造函数,接着子类的属性初始化,子类的构造函数。
在Test2中添加个类属性
static String school = “bbb”;
debug main之前这个属性就已经被加载了。

阅读全文
0 0