兩個例子:
第二個例子:
也就是說當我們執行子類的建構函式的時候:
第一步先執行super();也就是說執行父類的建構函式
第二步執行完父類的建構函式中的 super();
第三步執行父類的顯示初始化(就是賦值操作int num=9;)
第四步執行父類的構造**塊
第五步執行父類建構函式中的show();但是我們建立的是子類的物件,所以發現該方法被重寫,所以執行子類的show()方法。但是此時子類的num還沒有顯示初始化,只有預設初始化為0;
第六步執行完子類的super();
第七步顯示初始化
第八步構造**塊
第九步子類的show();
java物件初始化過程
假設有一下類 class test test int n 0 我們知道,任何物件在使用前都會被初始化,方法裡面的區域性變數必須給初始化值才能通過編譯。現在我們來討論一下初始化的過程 對於字段 變數 而言,如果是基本型別,那麼即使不給初始值,都會得到jvm預設的初始值 boolean預設是false,...
Java物件的初始化過程
person p new person zhangsan 20 執行該語句時虛擬機器做了什麼事情?1.因為new用到了person.class檔案,所以會先找到該檔案載入到記憶體中 2 執行該類中的static 塊 如果有的話 給person.class類進行初始化 3 在堆記憶體中開闢空間,分配記...
Java 初始化過程
初始化過程 載入器啟動並且找出匯出類derived的編譯 即名為derived.class的檔案之中 在對它載入的過程中,編譯器注意到它有乙個基類,於是繼續進行基類的載入 基類中的static變數初始化,然後是匯出類的static 如果乙個成員被宣告為 static,它就能夠在它的類的任何物件建立之...