一、**執行:
父類:
public
class
animal
public
animal()
public
void
a()
} 子類:
public
class
catextends
animal
public
cat()
@override
public
void
a()
public
static
void
main(string args)
}
執行結果:
父類的靜態方法
子類的靜態方法
執行父類的構造**塊
執行父類的構造方法
執行子類的構造**塊
執行子類的構造方法
執行子類的a方法
二、分析
可以看出幾個重點:
1、靜態方法首先執行,先父類,後子類;
2、其次,執行構造**塊和構造方法,先父類,後子類;
3、最後,執行子類的方法
Java子類父類的各個類執行順序
父類 靜態 塊 子類 靜態 塊 父類 非靜態 塊 父類 建構函式 子類 非靜態 塊 子類 建構函式 class superclass public superclass public class objectinit extends superclass public objectinit publ...
java中子類繼承父類程式執行順序
我們經常在專案中使用繼承,但是往往不太明白,程式執行的順序以及原理,尤其是使用上轉型物件的時候,以及父類子類中都有static變數和方法時,不知道先執行誰。下面是乙個簡單的繼承,來檢視 的執行順序 package test class person person class student exte...
Java中父類和子類載入順序
最近在總結一些和jvm相關的知識,現在總結一下關於父類和子類載入順序的問題。簡而言之就是先靜態後非靜態,先父類後子類,具體順序如下 父類靜態變數 父類靜態 塊 若有多個按 先後順序執行 子類靜態變數 子類靜態 塊 若有多個按 先後順序執行 父類非靜態變數 父類非靜態 塊 若有多個按 先後順序執行 父...