首頁 > 类库下载 > java类库 > java類別的初始化順序

java類別的初始化順序

高洛峰
發布: 2016-11-03 13:17:37
原創
1651 人瀏覽過

在java中,當我們new一個物件時,物件中的成員,初始化區塊以及建構方法的載入是有一定的順序的,看下面一副圖:

java類別的初始化順序

一、單類(無基類)下的初始化順序:

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();

}類別靜態初始化區塊

          子類別靜態變數

          子類別靜態初始化區塊

  

          父類初始化區塊

          父類別建構

     初始化區塊

          子類別建構

繼承類別順序:

             類別非靜態(成員,區塊)>靜態(成員和區塊)先於父類別的非靜態(成員和區塊),因為靜態是屬於類別的;對於非靜態和構造,自然是父類別中全部載入完畢,再載入子類別。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板