class Base {
int i = 99;
public void amethod(){ System.out.println("Base.amethod()"+i);}
Base() { amethod(); }
}
public class Derived extends Base{
int i = -1;
public static void main(String argv[]){
Base b = new Derived();
//Derived无构造函数,所以默认构造函数调用super(),即先执行Base的构造函数,
//Base中调用函数amethod(),该amethod()调用的是Derived中的amethod()
System.out.println(b.i); //i为Base中i的值
b.amethod(); //amethod()调用的是Derived中的amethod
}
public void amethod(){ System.out.println("Derived.amethod()"+i); }
}
运行结果:Derived.amethod()0
99
Derived.amethod()-1
请问以上我注释部分理解的是否正确,运行结果第一行的i为何是0