在java中,當我們new一個物件時,物件中的成員,初始化區塊以及建構方法的載入是有一定的順序的,看下面一副圖:
一、單類(無基類)下的初始化順序:
public class Parent {
static String staticStr = "父類靜態變數";
private String str = "父類別成員變數";
. println(staticStr);
System.out.println("父類靜態初始化區塊");
}
{
Systup.out.println();父類初始化區塊");
}
public Parent() {
System.out.println("父類構造");
}
}(oid; ) {
new Parent();
//new Parent();
}
}
父類別成員變數 父類別初始化區塊 父類別建構 /* 若釋放第二行 父類別初始化區塊 父類別建構單一類別順序: ①靜態(成員,區塊) > 非靜態(成員,區塊) > 建構
」。
③靜態成員或區塊屬於類別的,因此優先初始化,且只會初始化一次。
④則已執行。
二、繼承類別的初始化順序
class SubClass extends Parent {
static String staticStr = "子類別靜態變數"; static {
System.out.println(staticStr);
System.out.println("子類別靜態初始化區塊");
}
.System.out.println("子類別初始化區塊");
}
public SubClass() {
System.out.print SubClass() {
〜}I. static void main(String[] args) {
System.out.println("子類別main方法");
new SubClass();
}類別靜態初始化區塊
子類別靜態變數
子類別靜態初始化區塊
父類初始化區塊
父類別建構
初始化區塊
子類別建構
繼承類別順序:
類別非靜態(成員,區塊)>靜態(成員和區塊)先於父類別的非靜態(成員和區塊),因為靜態是屬於類別的;對於非靜態和構造,自然是父類別中全部載入完畢,再載入子類別。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!