静态语句块,非静态语句块,构造方法在子类和父类的执行顺序

[java] view plain copy
 
  1. package test;  
  2.   
  3.   
  4. public class Main {  
  5.       
  6.     public static void main(String args[]) {  
  7.             new subclass();  
  8.             new subclass("hello,world!");  
  9.     }  
  10.   
  11. }  
  12. class base{  
  13.     static {  
  14.         System.out.println("父类的静态代码块");  
  15.     }  
  16.     {  
  17.         System.out.println("父类的非静态代码块");  
  18.     }  
  19.     public base(){  
  20.         System.out.println("父类的无参构造方法");  
  21.     }  
  22.     public base(String str){  
  23.         System.out.println("父类的有参构造方法:参数为:"+str);  
  24.     }  
  25. }  
  26. class subclass extends base{  
  27.     static {  
  28.         System.out.println("子类的静态代码块");  
  29.     }  
  30.     {  
  31.         System.out.println("子类的非静态代码块");  
  32.     }  
  33.     public subclass(){  
  34.         System.out.println("子类的无参构造方法");  
  35.     }  
  36.   
  37.     public subclass(String str) {  
  38.         System.out.println("子类的有参构造方法:参数为:"+str);  
  39.     }  
  40. }  



 

结果:就是顺序:

父类的静态代码块
子类的静态代码块
父类的非静态代码块
父类的无参构造方法
子类的非静态代码块
子类的无参构造方法
父类的非静态代码块
父类的无参构造方法
子类的非静态代码块
子类的有参构造方法:参数为:hello,world!

 

posted @ 2016-12-04 12:00  天涯海角路  阅读(102)  评论(0)    收藏  举报