(答案)一段关于继承的测试
答案:
Target=> 0
Target=> 30
Depend=> 20
说明:
这里面有个问题需要说强调
构造方法会优先于属性初始化,因为构造代表着分配内存之类的基础功能,只有构造好了,其他的才能使用
关键问题在于 第一个为什么是0
Target里面的
public Target()
{
print();
super.print();
i = 40;
}
在第一个print()之前,会优先调用父类的构造器,而父类的构造器里面的print()方法,被override了,实际调用的是子类的方法,可惜,此时子类还没有完成初始化,因为父类的构造器还没有返回呢。 所以其属性全部为默认值。 数字当然就是0啦!