一、程序
package yy;
class Parent{
static int a =4;
static{
System.out.println("Parent");
}
}
class Chlid extends Parent{
static int a =5;
static{
System.out.println("Child");
}
}
public class Test3 {
static{
System.out.println("Test3");
}
public static void main(String[] args) {
System.out.println(Chlid.a);
}
}
二、输出结果:
三、分析
因为Test3为主类,所以会先加载Test3,初始化其中的静态代码块。
在main方法中有一个Chlid.a,会加载Child类,但是Child有直接父类,所以先加载其直接父类Parent
因此,输出结果为
Test3
Parent
Child
5