Java代码执行顺序

  1. 执行父类的静态代码块
  2. 执行子类的静态代码块
  3. 执行父类的构造代码块
  4. 执行父类的构造函数
  5. 执行子类的构造代码块
  6. 执行子类的构造函数
class Parent {              

    // 静态初始化块              
    static {                          
        System.out.println("父类--静态初始化块");              
    }                  

    // 构造器          
    public Parent() {          
        System.out.println("父类--构造器");              
    }         

    // 初始化块              
    {                  
        System.out.println("父类--初始化块");              
    }  
}                  
 class SubClass extends Parent {              

    // 静态初始化块              
    static {          

        System.out.println("子类--静态初始化块");          
    }          
    // 初始化块  
    {          

        System.out.println("子类--初始化块");              
    }                  
    // 构造器          
    public SubClass() {          
        System.out.println("子类--构造器");              
    }                  
    // 程序入口          
    public static void main(String[] args) {                  
        new SubClass();
        System.out.println("----------");

        new SubClass();               
    }          
}    
/*
输出:
父类--静态初始化块
子类--静态初始化块
父类--初始化块
父类--构造器
子类--初始化块
子类--构造器

------------------
父类--初始化块
父类--构造器
子类--初始化块
子类--构造器
*/

results matching ""

    No results matching ""