通過簡單的**,更清晰的了解了,乙個類的例項化順序
/*** 測試例項化父類 */
public
class
parentinstance
static
public
void
print()
}
/*** 測試例項化子類 */
public
class soninstance extends
parentinstance
static
public
void
print()
public
static
void
main(string args)
}
結果如下:
父類靜態**塊子類靜態**塊
子類main()方法
父類構造**塊
父類構造方法
子類列印方法
子類構造**塊
子類構造方法
子類列印方法
由於父類列印方法被子類覆蓋,因此儘管父類呼叫的是this.print(),但最終還是呼叫子類的列印方法。
總結如下:
父類靜態**塊》子類靜態**塊》子類main()方法》父類構造**塊》父類構造方法》子類構造**塊》子類構造方法
靜態**塊:在虛擬機器載入類的時候就會載入執行,而且只執行一次。
非靜態**塊:在建立物件的時候執行,每次建立物件都會執行一次。
類的例項化順序
首先列出例項化的順序 具體大家可以自行通過 進行驗證。在例項化的時候,可能會出現成員變數例項化類,那麼成員例項化。假造到public father father new father 時,在去初始化father這類的public father father new father 就很容易程式設計死迴...
類的例項化順序
package com.company.demo1 public class classinit class a public string s1 prtstring a的成員變數.public static string s2 prtstring a的static變數.protected a pu...
類的例項化順序
類的例項化順序 1 建立物件前一定要先載入class檔案 2 static修飾的屬性和方法是隨著類的載入而載入的 3 因為存在繼承關係,所以,父類一定是優先於子類執行 先將父類中的屬性和方法載入之後再載入子類中的 4 建立物件其實在呼叫構造器,構造器的作用除了開闢空間之外,還需要做初始化功能,相比較...