java類內部程式碼執行順序
先看以下程式碼
public class HelloB extends HelloA{ public HelloB() { } { System.out.println("I’m B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } }class HelloA{ public HelloA() { } { System.out.println("I’m A class"); } static { System.out.println("static A"); } }
執行程式碼後輸出
static A
static B
I’m A class
I’m B class
該問題涉及:靜態初始化程式碼塊、構造程式碼塊、構造方法
當涉及到繼承時,按照如下順序執行:
1、執行父類的靜態程式碼塊
static { System.out.println("static A"); }
輸出:static A
2、執行子類的靜態程式碼塊
static { System.out.println("static B"); }
輸出:static B
3、執行父類的構造程式碼塊
{ System.out.println("I’m A class"); }
輸出:I'm A class
4、執行父類的建構函式
public HelloA() { }
輸出:無
5、執行子類的構造程式碼塊
{ System.out.println("I’m B class"); }
輸出:I'm B class
6、執行子類的建構函式
public HelloB() { }
輸出:無
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019613/viewspace-2926774/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中,類與類,類中的程式碼執行順序Java
- Go包中程式碼執行順序Go
- 總結類初始化時的程式碼執行順序
- Java子類和父類的初始化執行順序Java
- 夯實Java基礎系列7:Java 程式碼塊和執行順序Java
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- Java中如何保證執行緒順序執行Java執行緒
- JavaScript程式碼執行順序和資料型別JavaScript資料型別
- C#類中方法的執行順序C#
- Sql執行順序SQL
- Java之執行緒的優先順序Java執行緒
- java繼承關係下執行順序Java繼承
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- VC的佈局時機、所用方法以及UIView內部佈局執行順序UIView
- 【JavaScript】JS引擎中執行上下文如何順序執行程式碼JavaScriptJS行程
- JavaScript執行順序分析JavaScript
- pipeline的執行順序
- mySQL 執行語句執行順序MySql
- 夯實Java基礎系列7:一文讀懂Java 程式碼塊和執行順序Java
- 類script標籤,非同步載入,順序執行非同步
- Java父子類載入順序Java
- Java for迴圈中語句執行的順序Java
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- java中的成員內部類,程式碼截圖Java
- Java內部類詳解--匿名內部類Java
- SQL語句執行順序SQL
- Select語句執行順序
- js執行順序Event LoopJSOOP
- Spring Aop的執行順序Spring
- sql mysql 執行順序 (4)MySql
- 建立派生類物件,建構函式的執行順序物件函式
- Java 內部類Java
- Java內部類Java
- java類初始化的順序Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- 你是否真的懂 [程式的執行順序] 多程式 / 程式池
- java內部類,為什麼需要內部類?Java