求大神回答,static{}方法内部有输出,同时出现在父类和子类中

子类继承父类输出,同时有自己的方法进行输出,运行结果是按什么顺序输出的?

其实自己写个例子一下就看出来了

class A {

static {
    System.out.print("1");
}

public A() {
    System.out.print("2");
}

}

classB extends A{

static {
    System.out.print("a");
}

public B() {
    System.out.print("b");
}

}

public class Hello {

public static void main(String[] args) {
    A ab = new B();
    ab = new B();
}

}
执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。

看你的代码,如果是静态初始化块,那么先执行基类的,然后是派生类的。