Java类的成员初始化顺序
2017-06-01 13:56
246 查看
Java类的成员初始化顺序
2017-06-01代码:
public class InitializeSequence { public static void main(String[] args) { new Son(); } } class Father { static { System.out.println("1 父类静态代码块初始化"); } { System.out.println("5 父类代码块初始化"); } private static String s = print("2 父类静态实例"); private String s1=print("6 父类实例"); public static String print(String msg) { System.out.println(msg); return "父类静态成员变量的初始化"; } public Father() { System.out.println("7 父类无参构造函数初始化"); } } class Son extends Father { static { System.out.println("3 子类静态代码块初始化"); } { System.out.println("8 子类代码块初始化"); } private static String s = print("4 子类静态实例"); private String s1=print("9 子类实例"); public static String print(String msg) { System.out.println(msg); return "子类静态成员变量的初始化"; } public Son() { System.out.println("10子类构造函数初始化"); } }
结果:
1 父类静态代码块初始化 2 父类静态实例 3 子类静态代码块初始化 4 子类静态实例 5 父类代码块初始化 6 父类实例 7 父类无参构造函数初始化 8 子类代码块初始化 9 子类实例 10子类构造函数初始化
总结:
1 先静态成员,后实例成员
2 先父类,后子类
3 先实例成员,后构造函数
对比:c#类的成员初始化顺序
相关文章推荐
- Java类成员的初始化顺序
- java类的成员初始化顺序和初始化块知识
- Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序
- Java类成员的初始化方法和顺序
- java类的成员初始化顺序和初始化块顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- java类的成员初始化顺序和初始化块知识
- java类中数据成员初始化的顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员初始化顺序
- Java类成员变量的初始化顺序
- java类的成员初始化顺序和初始化块知识
- java类成员初始化顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- java类的成员初始化顺序和初始化块知识
- C++类成员变量初始化顺序问题
- java类成员初始化顺序
- Java类的初始化顺序探究
- java类的初始化和对象的创建顺序