程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java類中元素初始化次序詳解

java類中元素初始化次序詳解

編輯:關於JAVA

java類中元素初始化次序詳解。本站提示廣大學習愛好者:(java類中元素初始化次序詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java類中元素初始化次序詳解正文



public class Test4 {
    @Test
    public void test(){
        child child = new child();
    }
}

class parent{
    public static String parentStaticField = "父類靜態變量";
    public String parentNormalField ="父類通俗變量";
    static {
        System.out.println(parentStaticField);
        System.out.println("父類靜態塊");
    }

    {
        System.out.println(parentNormalField);
        System.out.println("父類通俗塊");
    }

    public parent(){

        System.out.println("父類結構辦法");
    }
}

class child extends parent{
    public static String childStaticField = "子類靜態變量";
    public String childNormalField ="子類通俗變量";
    static {
        System.out.println(childStaticField);
        System.out.println("子類靜態塊");
    }

    {
        System.out.println(childNormalField);
        System.out.println("子類通俗塊");
    }

    public child(){
        System.out.println("子類結構辦法");
    }
}

輸入:


父類靜態變量
父類靜態塊
子類靜態變量
子類靜態塊
父類通俗變量
父類通俗塊
父類結構辦法
子類通俗變量
子類通俗塊
子類結構辦法

履行進程:

1、當履行到new child時,裝載器尋覓曾經編譯的child類的代碼(也就是child.class文件)。在裝載的進程中,裝載器留意到它有一個基類,因而它再裝載基類。不論你創不創立基類對象,這個進程總會產生。假如基類還有基類,那末第二個基類也會被裝載,依此類推。

2、履行基礎類的static初始化,然後是下一個派生類的static初始化,依此類推。這個次序異常主要,由於派生類的“static初始化”有能夠要依附基類成員的准確初始化。

3、當一切需要的類都曾經裝載停止,創立child類對象。

4、child類存在父類,則挪用父類的結構函數,可使用super來指定挪用哪一個結構函數。

  基類的結構進程和結構次序,同派生類的雷同。起首基類中各個變量依照字面次序停止初始化,然後履行基類的結構函數的其他部門。

5、對子類成員數據依照它們聲明的次序初始化,履行子類結構函數的其他部門。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved