在闲逛的时候,看了一道题。一不小心给做错了。就把它拿过来,你也来试试吧。
public class Test3 extends Test4{
int i = 30;
Test3(){
print();
i = 40;
}
public static void main(String[] args){
System.out.println(new Test3().i);
}
void print(){
System.out.println(i);
}
}
class Test4{
int i = 10;
Test4(){
print();
i = 20;
}
void print(){
System.out.println(i);
}
}
执行结果会是什么呢?
int i = 30;
Test3(){
print();
i = 40;
}
public static void main(String[] args){
System.out.println(new Test3().i);
}
void print(){
System.out.println(i);
}
}
class Test4{
int i = 10;
Test4(){
print();
i = 20;
}
void print(){
System.out.println(i);
}
}
执行结果会是什么呢?
结果是
0
30
40
本文通过一个具体的Java程序实例,展示了类继承中变量的作用域及初始化过程。子类Test3继承自父类Test4,在构造函数中调用了print()方法并重新赋值变量i,最终在main方法中输出了变量i的值。





