繼承時,我們往往會關注屬性和靜態屬性和構造方法之間的初始化順序是什麼樣的
答案是:
先static;(建立物件後)然後父類屬性,父類構造方法;最後子類屬性,子類構造方法。
package beetle;
class insect
static int x1 =
prt("static insect.x1 initialized");
static int prt(string s)
}public class beetle extends insect
static int x2 =
prt("static beetle.x2 initialized");
static int prt(string s)
public static void main(string args)
}
輸出:
static insect.x1 initialized
static beetle.x2 initialized
beetle constructor
insect j initialized
i = 9, j = 47
beetle.k initialized
k = 63
j = 39
java繼承時的方法呼叫順序記錄
類b繼承類a,當例項化乙個b型別時,執行順序為 a的靜態 塊 b的靜態 塊 a的構造 塊 a的無參建構函式 b的構造 塊 b的無參建構函式 public class test1 class a public a public a int a class b extends a public b pu...
Java基礎 繼承方法呼叫順序
最近因為面試的原因,回過頭來複習基礎的知識,都忘光了,準備買本面試書回來啃。我先把自己測試的結論總結寫出來,以後忘記再來看看 如果b類繼承自a類,在main方法中new出b的物件 不帶引數 那麼他執行的順序是 父類a的靜態方法 類b的靜態方法 父類a的非靜態方法 不指定方法名 父類a的無參構造 這個...
java繼承的構造函式呼叫順序
1 首先呼叫父類的無參建構函式 這個建構函式必定會被呼叫 2 呼叫子類的無參建構函式或帶引數的建構函式 例 1 宣告抽象類爺爺 father of abstractclass public abstract class father of abstractclass protected father...