塊,靜態塊程式碼執行順序
阿新 • • 發佈:2018-11-27
public class Main { public static void main(String[] args) { System.out.println("main start---------"); new B(); new A(); System.out.println("main end---------"); } } class A{ public A() { System.out.println("Hello A"); } { System.out.println("I'm A"); } static { System.out.println("I'm static A"); } } class B extends A{ public B() { System.out.println("Hello B"); } { System.out.println("I'm B"); } static { System.out.println("I'm static B"); } } //輸出結果: main start--------- I'm static A I'm static B I'm A Hello A I'm B Hello B I'm A Hello A main end---------
class A{ public A() { System.out.println("構造 A"); } { System.out.println("A block"); } static { System.out.println("static A block"); } } public class B extends A{ public B() { System.out.println("構造 B"); } { System.out.println("B block"); } static { System.out.println("static B block"); } public static void main(String[] args) { System.out.println("-----main start-------"); new B(); new A(); System.out.println("-----main end---------"); } } //執行結果: static A block static B block -----main start------- A block 構造 A B block 構造 B A block 構造 A -----main end---------
//執行順序:(優先順序從高到低。)靜態程式碼塊>mian方法>構造程式碼塊>構造方法。
其中靜態程式碼塊只執行一次。構造程式碼塊在每次建立物件是都會執行。