新手求助。
public abstract class go8 {
abstract void a();
go8() {
System.out.println("yiqian");
a();
System.out.println("yihou");
}
public static void main(String[] args) {
new go9();
}
}
class go9 extends go8 {
private int i = 1;
void a() {
System.out.println("a()" + i);//这里的i为什么输出的是0?
}
go9() {
System.out.println(i);
}
}
[解决办法]
看看类加载过程吧
http://java.sun.com/docs/books/jls/second_edition/html/execution.doc.html#44459
new go9()的执行顺序
1.0-->1.1-->1.2-->2.0-->2.1-->3.0-->4.0-->4.1-->5.0
public abstract class go8 { abstract void a(); go8() { //1.2 System.out.println("yiqian");//2.0 a(); //2.1 System.out.println("yihou");//4.0 } public static void main(String[] args) { new go9(); }}class go9 extends go8 { private int i = 1; //1.0初始化i为0 ;4.1 初始化i为1 void a() { System.out.println("a()" + i);// } go9() { //1.1 System.out.println(i); //5.0 }}