public class PK {
public static void main(String[] args) {
new B();
}
}
class A {
int x = 5, y = 3;
A() {
a();
}
void a() {
System.out.println(x * y+"1111111");
}
}
class B extends A {
int z = 4;
void a() {
System.out.println(x * y * z+"22222");
}
}
[url]http://blog.sina.com.cn/s/blog_4cc16fc50100bjjp.html[/url],
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
子类main方法
父类--变量
父类--初始化块
父类--构造器
i=9, j=0
子类--变量
子类--初始化块
子类--构造器
i=9,j=20
调用B的构造器的时候先调用A的构造器,B中的a()方法覆盖了A中的a()方法,在A的构造器中调用的是B的a()方法,这时候B还没有初始化,z为0,结果当然为0了,
在A类中调用的时候z为0