1. 程式人生 > 其它 >java---靜態程式碼塊、構造程式碼塊、構造方法、成員變數預設初始化及顯式初始化的執行順序

java---靜態程式碼塊、構造程式碼塊、構造方法、成員變數預設初始化及顯式初始化的執行順序

技術標籤:java多型面向物件程式設計

1.子類繼承父類,例項化子類物件時
父類靜態程式碼塊 ------》子類靜態程式碼塊 ------》父類成員變數預設初始化 -------》(父類構造程式碼塊-,顯示初始化)兩者誰在前誰先執行 ---------》父類構造方法------》子類成員變數預設初始化 -------》(子類構造程式碼塊,子類成員變數顯示初始化)兩者誰在前誰先執行 ------》子類構造方法

2.單一類,例項化物件時
靜態程式碼塊 --》成員變數預設初始化 --》 成員變數顯示初始化 --》 非靜態程式碼塊

測試程式碼:

package cn.tedu.oop;

public
class JiCheng { public static void main(String[] args) { new Son(); } } class Fa{ //隱式初始化 //構造程式碼塊----------------------------與顯式初始化誰在前誰先執行 { System.out.println(this.a); } //顯示初始化 int a=10; //構造方法----------------------------一般最後執行 Fa(){ System.out.println
(a); } } class Son extends Fa{ //顯式初始化 int a=11; //構造程式碼塊----------------------------與顯式初始化誰在前誰先執行 { System.out.println(this.a); System.out.println(super.a); } //構造方法----------------------------一般最後執行 Son(){ super(); System.out.println(a); } }

執行結果:
在這裡插入圖片描述