1指出下面程序的运行结果:
1 class A{
2
3 static{
4 System.out.print("1");
5 }
6
7 public A(){
8 System.out.print("2");
9 }
10 }
11
12 class B extends A{
13
14 static{
15 System.out.print("a");
16 }
17
18 public B(){
19 System.out.print("b");
20 }
21 }
22 //何问起 hovertree.com
23 public class Hello{
24
25 public static void main(String[] args){
26 A ab = new B();
27 ab = new B();
28 }
29
30 }
答:执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。