关于涉及继承的导出类的初始化顺序:
1.先载入基类(如果有基类的基类,则先载基类的基类——从外往内)
2.静态变量初始化(先基类再导出类——从外往内)
3.各个基类和导出类静态初始化完后,执行导出类的main方法(main中语句顺序执行)
4.如果在main中有显式创建导出类的对象,则将在导出类构造器调用之前先隐式创建各基类的对象(从外往内)
5.如果没有,则不会调用构造器
注意:
1.只有创建对象时,非静态域变量才会执行!
2.创建对象时,是先静态变量(如果之前被执行了,此时不会再执行)后非静态变量,再构造器!
3.静态方法可以在不创建对象时调用,但是非静态方法调用必须在创建对象以后!
4.如果基类只有含参数的构造器,那么导出类的构造器里第一件事就是要显示的调用基类的含参数构造器(super (参数)),否则编译通不过
对于有不含参数的构造器或默认构造器,编译器会自动调用,不必显示说明