了解类的初始化顺序对于编写正确的Java代码是非常重要的,尤其java是完全面向对象的语言,类作为整个程序编写的单位。 构造方法 静态实例变量 实例变量 静态块 实例块
测试代码: 所有类在同一包下:
class Test1{
public Test1(){
System.out.println("父类普通实例变量");
}
}
class Test2{
public Test2(){
System.out.println("父类静态实例变量");
}
}
class Test3{
public Test3(){
System.out.println("子类普通实例变量");
}
}
class Test4{
public Test4(){
System.out.println("子类静态实例变量");
}
}
class public Father{
private String Test1 p = new Test1();
public static String Test2 = q = new Test2();
Father(){
System.out.println("父类构造方法");
}
{
System.out.println("父类实例块");
}
static{
System.out.println("父类静态块");
}
}
class public Son extends Father{
private String Test3 p = new Test3();
public static String Test4 = q = new Test4();
Son(){
System.out.println("子类构造方法");
}
{
System.out.println("父类实例块");
}
static{
System.out.println("父类静态块");
}
}
在Main类中进行测试:
public class Main{
public static void main(String[] args){
Son s = new Son();
}
}