Java中建構函式、靜態程式碼塊、程式碼塊的執行順序

jxaa0965發表於2022-11-12
package com.wjj.test; 
/**
* @author        作者 : xxx
* @createTime 建立時間:2018年7月27日 下午3:26:47
* @discription   類說明:
* @version       版本:
*/public class ConstructorTest {    public static void main(String[] args) {        Dog dog = new Dog();
    }
}class Animal {
    String name;    int age;    
    public Animal() {
        System.out.println("Animal 類");
    }
    
    {
        System.out.println("Animal 程式碼塊");
    }    
    static {
        System.out.println("Animal static塊");
    }
}class Dog extends Animal {    public Dog() {
        System.out.println("Dog 類");
    }
    
    {
        System.out.println("Dog 程式碼塊");
    }    
    static {
        System.out.println("Dog static 塊");
    }
}

執行上面程式碼輸出結果:
Animal static塊
Dog static 塊
Animal 程式碼塊
Animal 類
Dog 程式碼塊
Dog 類

總結:

static程式碼塊、程式碼塊、建構函式的執行順序為:
  父類static程式碼塊 > 子類static程式碼塊 > 父類程式碼塊 > 父類建構函式 > 子類程式碼塊 > 子類建構函式
(每建立一個物件,就會執行一次非靜態程式碼塊)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019613/viewspace-2923058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章