JAVA 中 靜態方法,非靜態方法,構造方法 ,執行順序
阿新 • • 發佈:2019-02-05
一直不能理解java 中這三者的執行順序。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); B b = new B(); } static class A{ static{ System.out.println("父類靜態方法") ; } { System.out.println("父類非靜態方法") ; } public A(){ System.out.println("父類構造"); } } static class B extends A{ static{ System.out.println("子類靜態方法") ; } { System.out.println("子類非靜態方法") ; } public B(){ System.out.println("子類構造"); } }
輸出的結果是:
父類靜態方法
子類靜態方法
父類非靜態方法
父類構造
子類非靜態方法
子類構造
====================================
靜態變數只執行一次,與類同時建立,首先是執行static 修飾的方法,接著是非靜態方法,構造方法。(子類的非靜態方法在父類的構造方法之後執行)