public class Test3 extends Test4
{
int i=30;
Test3(){
print();
i=40;
}
void print(){
System.out.println(this.i);
}
}
class Test4 {
int i=10; Test4(){
print();
i=20;
}
void print(){
System.out.println(this.i);
}
}
class Test3demo{
public static void main(String[] args) {
System.out.println(new Test3().i);
}
}
结果是0,30,40. 30和40好理解 0应该是Test4的print方法 应该是10啊
为什么是0呢??? 谁给解答一下!!!!!
{
int i=30;
Test3(){
print();
i=40;
}
void print(){
System.out.println(this.i);
}
}
class Test4 {
int i=10; Test4(){
print();
i=20;
}
void print(){
System.out.println(this.i);
}
}
class Test3demo{
public static void main(String[] args) {
System.out.println(new Test3().i);
}
}
结果是0,30,40. 30和40好理解 0应该是Test4的print方法 应该是10啊
为什么是0呢??? 谁给解答一下!!!!!
解决方案 »
- RMI的几个小疑问
- socket建流,使用线程循环监控,为什么会被挂起?
- JAVA中的数组
- 在用业余时间写一个插件,可是在动态加载多个jar包这环上卡住了,求各位高手帮一下忙!
- 实在解决不了,又是编码问题,mysql已经设为utf8编码,我写了一个Java应用程序,在dos下直接运行它,把数据插入乱码
- 用AT指令从手机中读取短信要用什么AT指令,指令格式怎么样写?
- 关于APPLET在WEB页面的调用的问题,高手进!!!
- 请教高手,关于内存泄漏。急!
- 请问CMP BEAN和BMP BEAN谁跟其他的BEAN的耦合更松散?
- 为什么像这样的地址../Lib/test/test.htm,转换成绝对地址不正确??
- JCheckBox如何分组啊?
- J2ME和3G的关系 - 请大家畅所欲言
Test4的构造中调用了print,因为实际是Test3的实例,所以调用的是Test3的print。但是,在构造Test3之前会构造Test4,而构造Test4的时候,调用了重载的print,这里打印的Test3的i还没有初始化i,所以i就是默认值0了。i要在构造了Test4之后构造Test3的时候才会初始化。因为关系比较复杂,自己要多想想,不好说清楚的。