java靜態塊,非靜態塊,構造函數

 

  1. java靜態塊是在類加載時自動執行的,非靜態代碼塊是在建立對象時自動執行的代碼。不建立對象不執行該類的非靜態代碼塊。順序是靜態塊-->非靜態塊-->構造函數。java

  2. 靜態代碼塊只在第一次new時執行一次,而非靜態代碼塊每new一次就執行一次。ide

父類:函數

package test;



public abstract class fu {

 

  private int age;

  public abstract void test();

  static {

   System.out.println("這是父類靜態代碼塊");

  }

  public fu(){

 System.out.println("這是父類構造函數");

  }

  

  {

  System.out.println("這是父類非靜態代碼塊");

  }

}

子類:

package test;



public class zi extends fu{

 static{

 System.out.println("這是子類靜態代碼塊");

 }

 public zi(){

 System.out.println("這是子類構造函數");

 }

 

 {

 System.out.println("這是子類非靜態代碼塊");

 }

 @Override

 public void test() {

 System.out.println("這是子類方法");

 

 }

}

Main函數

package test;



public class Main {



 public static void main(String[] args) {

 fu zi=new zi();

 zi.test();



 }



}

 

結果:code

這是父類靜態代碼塊對象

這是子類靜態代碼塊class

這是父類非靜態代碼塊test

這是父類構造函數構造函數

這是子類非靜態代碼塊方法

這是子類構造函數static

這是子類方法

相關文章
相關標籤/搜索