class HelloA{
public HelloA()
????``{
????????``System.out.println(``"I’m A class "``);
????``}
????``static
????``{
????``System.out.println(``"static A"``);
????``}
}
public class HelloB extends HelloA{
????``public HelloB()
????``{
????????``System.out.println(``"I’m B class"``);
????``}
????``static``{
????????``System.out.println(``"static B"``);
????``}
????``public static void main (String[] args){
????????``new HelloB();
????``}
}
类的初始化顺序是: 1、初始化父类中的静态成员变量和静态代码块。 2、初始化子类中的静态成员变量和静态代码块。 3、初始化父类中的普通成员变量和代码块,在执行父类中的构造方法。 4、初始化子类中的普通成员变量和代码块,在执行子类中的构造方法。 (静态优先,父类优先) 所以 输出顺序结果为: static A static B I’m A class I’m B class


