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
- Java類的基本執行順序Java
- Go包中程式碼執行順序Go
- 總結類初始化時的程式碼執行順序
- Java子類和父類的初始化執行順序Java
- 夯實Java基礎系列7:Java 程式碼塊和執行順序Java
- java執行緒優先順序Java執行緒
- js程式碼執行順序簡單介紹JS
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- Java中如何保證執行緒順序執行Java執行緒
- C#類中方法的執行順序C#
- java 內部執行緒Java執行緒
- JavaScript程式碼執行順序和資料型別JavaScript資料型別
- Sql執行順序SQL
- java類載入順序Java
- for語句括號中程式碼執行順序介紹
- Java之執行緒的優先順序Java執行緒
- java繼承關係下執行順序Java繼承
- VC的佈局時機、所用方法以及UIView內部佈局執行順序UIView
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- PHPWind8.7中程式碼結構與程式執行順序PHP
- JavaScript執行順序分析JavaScript
- 任務執行順序
- for語句執行順序
- JavaScript的執行順序JavaScript
- laravel Event執行順序Laravel
- mySQL 執行語句執行順序MySql
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- java內部類之成員內部類之匿名內部類Java
- 【JavaScript】JS引擎中執行上下文如何順序執行程式碼JavaScriptJS行程
- Java父子類載入順序Java
- Java 類初始化順序Java
- Java類初始化順序Java
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- 類script標籤,非同步載入,順序執行非同步
- Java內部類詳解--匿名內部類Java
- java內部類之成員內部類Java
- Unity3D中指令碼的執行順序和編譯順序Unity3D指令碼編譯