初始化过程是这样的:
1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;
4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法;
类的加载顺序:
父类静态成员变量、静态块>子类静态成员变量、 静态块>父类普通成员变量、非静态块>父类构造函数>子类 普通成员变量、非静态块>子类构造函数
静态代码块:随着类的加载而执行,而且只执行一次 非静态代码块:每创建一个对象,就执行一次非静态代码块
关于各个成员简介:
类的成员总结(属性,方法,构造器,代码块,内部类)
小练习:
下面代码输出结果是
class C {C() {System.out.print("C");}}class A {C c = new C();A() {this("A");System.out.print("A");}A(String s) {System.out.print(s);}}class Test extends A {Test() {super("B");System.out.print("B");}public static void main(String[] args) {new Test();}}
【Java基础】Java中类的初始化过程:(静态成员变量 静态代码块 普通成员变量 代码块初始化顺序)