規律是這樣的:
任何乙個類,在執行乙個方法前必須要先安**的順序初始化所有的靜態塊,然後呼叫main函式,
在生成乙個類物件的時候,父類物件必須先生成,沒有父類哪有什麼子類。
對於屬性的呼叫來說,哪個類呼叫的就是哪個的屬性。
對於方法來說
非靜態方法,並且父類中有,子類中也有,物件是有子類生成的,那麼這個時候,呼叫子類中的方法。
如果是靜態方法,跟當前的類有關,哪個類就呼叫那個類的方法,不看是否覆蓋.
舉個例子
乙個類名為(demodynmethod)的演示類
class parentclass
public parentclass()
public void d()
public static void s()
}class sonclass extends parentclass
public sonclass()
public void d()
public static void s()
public class demodynmethod
static
Java父子類載入順序
先上桌結論 父類靜態屬性 成員變數 父類靜態 塊 子類靜態屬性 子類靜態 塊 父類非靜態屬性 父類非靜態 塊 父類構造器 子類非靜態屬性 子類非靜態 塊 子類構造器 這麼長怎麼記呀?靜態屬性和 塊,當且僅當該類在程式中第一次被 new 或者第一次被類載入器呼叫時才會觸發 不考慮永久代的 也正是因為上...
Java面試之父子類(3) 構造方法順序
在檢視答案之前,先猜測一下正確答案吧!package com.company class parentclass public parentclass string name static public class subclass extends parentclass public subcla...
父子類以及static的載入順序
static可以被寫在變數和 塊上,此時該變數和 塊不屬於物件,而屬於類,會在jvm執行類載入機制時的準備階段就被賦值以及執行,而非static的變數和 塊在初始化階段才會被賦值並執行。因此如果問靜態方法能否呼叫非靜態變數,答案是不能,因為後者在前者執行時還沒有初始化。通過結果,可以看到父子類的初始...