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

这是子类方法

相关文章
相关标签/搜索