/**
* 类初始化顺序:
* <p>
* 1、超类静态变量;超类静态初始化块。--按代码排列顺序;<br>
* 2、子类静态变量;子类静态初始化块。--按代码排列顺序; <br>
* 3、所有的成员变量—包括该类,及它的父类中的成员变量--被分配内存空间,并赋予默认值(这里是第一次初始化成员变量)。如:subText in
* SubClass constructor:null<br>
* 4、超类成员变量;超类初始化块。--按代码排列顺序;(这里是第二次初始化成员变量)<br>
* 5、为超类所调用的构造函数初始化其参数变量 (如果有参数)<br>
* 6、超类构造函数。此时如果调用子类override函数对子类成员变量进行赋值将不起作用,如本列:_subText<br>
* 7、子类成员变量;子类初始化块。--按代码排列顺序;如果超类构造函数已经对子类成员变量进行赋值,子类将用初始化值覆盖,如本列:_subText<br>
* 8、为子类所调用的构造函数初始化其参数变量 (如果有参数)<br>
* 9、子类构造函数。<br>
*
* @author liugiter
* 类初始化顺序:
* <p>
* 1、超类静态变量;超类静态初始化块。--按代码排列顺序;<br>
* 2、子类静态变量;子类静态初始化块。--按代码排列顺序; <br>
* 3、所有的成员变量—包括该类,及它的父类中的成员变量--被分配内存空间,并赋予默认值(这里是第一次初始化成员变量)。如:subText in
* SubClass constructor:null<br>
* 4、超类成员变量;超类初始化块。--按代码排列顺序;(这里是第二次初始化成员变量)<br>
* 5、为超类所调用的构造函数初始化其参数变量 (如果有参数)<br>
* 6、超类构造函数。此时如果调用子类override函数对子类成员变量进行赋值将不起作用,如本列:_subText<br>
* 7、子类成员变量;子类初始化块。--按代码排列顺序;如果超类构造函数已经对子类成员变量进行赋值,子类将用初始化值覆盖,如本列:_subText<br>
* 8、为子类所调用的构造函数初始化其参数变量 (如果有参数)<br>
* 9、子类构造函数。<br>
*
* @author liugiter
*/
/**
* 1、初始化interface的时候,只会初始化当前interface的field(如果有field),且不会像类一样递归初始化超类.<br>
* 2、对于由引用类变量(class field)所引发的初始化,只会初始化真正定义该field的class <br>
* 3、如果一个static field是编译时常量(compile-time constant)(即定义为static final
* field),则对它的引用不会引起定义它的类的初始化。
* ???????????????????接口的初始化?
*
*/