首先确定这句打印 System.out.println(t.i);的一定是Super类中的i,
1,当代码执行到这一句的时候Super t = new Test("A");先执行父类无参构造函数
public Super(){
System.out.println("B");
i += 2;
}
2,执行后i==1 然后再执行子类构造函数
1. public Test(String a){
2. System.out.println("C");
3. i = 5;
4. }
执行后 i == 5 ;
System.out.println(t.i);所以最后打印结果是 5
|