关于父类构造函数调用子类成员的困惑
tij中的习题:
class BaseWithPrint {
public BaseWithPrint() {
p.println("BaseWithPrint()");
print();
}
public void print() {
System.out.println("BaseWithPrint.print");
}
}
class DerivedWithPrint extends BaseWithPrint {
int i = 47;
public DerivedWithPrint() {
p.println("DerivedWithPrint()");
}
public void print() {
System.out.println("i = " + i);
}
}
public class GetFile {
public static void main( String args[] ){
DerivedWithPrint dp = new DerivedWithPrint();
dp.print();
}
}
输出结果如下:
在父类构造函数BaseWithPrint()中调用print(),既然是在父类的构造函数里,那么子类自然还没有构造,其成员函数按说也应该是不存在的呀!可是为什么这时可以调用子类的print()呢?
小弟初学java,问得可能比较幼稚,哪位前辈指点一下吧!