类的继承机制使得子类可以使用父类的功能(即代码),并且子类也具有父类的类型。下面介绍类在继承关系上的初始化的顺序问题。
1.程序并不是一开始就运行自己的构造方法,而是先运行其父类的默认构造方法。注意:程序自动调用其父类的默认构造方法。
2.程序在初始化的时候,并不是直接调用构造函数,而是先执行初始化变量,如果类变量是另外一个类的对象,则要先初始化另外这个类,执行另外这个类的构造函数
3.如果一个类中有静态对象,那么它会在非静态对象前初始化,但只初始化一次。非静态对象每次调用时都要初始化。
初始化的顺序包括构造方法调用的顺序如下:
1 .主类的静态成员首先初始化。
2 . 主类的超类的构造方法按照从最高到最低的顺序被调用。
3 .主类的非静态对象(变量)初始化。
4 .调用主类的构造方法。
原文出自http://www.cnblogs.com/chenz/articles/1832123.html