1,先初始化静态成员变量,因为客户程序可能不构造你的实例而access静态成员变量.
2,父类的构造函数,因为子类可能要access父类的东西.
比如:
在父类里加上 protected String str = null;
在父类构造函数()里加上 str = "str";
在子类里加上private String s = this.str;
所以要先构造父类,子类就可以安全地访问父类的成员.
3,当前类的成员变量,因为本身类的构造函数可能访问成员变量.
4,执行构造函数体.
1,先初始化静态成员变量,因为客户程序可能不构造你的实例而access静态成员变量.
2,父类的构造函数,因为子类可能要access父类的东西.
比如:
在父类里加上 protected String str = null;
在父类构造函数()里加上 str = "str";
在子类里加上private String s = this.str;
所以要先构造父类,子类就可以安全地访问父类的成员.
3,当前类的成员变量,因为本身类的构造函数可能访问成员变量.
4,执行构造函数体.