`
Ranina
  • 浏览: 3854 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

java笔试的一道流程题

    博客分类:
  • java
阅读更多
public static int t=parentStaticMethod2();
   {
   System.out.println("父类非静态初始化块");   
   }
   static {
   System.out.println("父类静态初始化块");
   }
   public Parent(){
   System.out.println("父类的构造方法");
   }
   public static int parentStaticMethod(){
   System.out.println("父类类的静态方法");
   return 10;   
   }
private static int parentStaticMethod2() {

System.out.println("父类的静态方法2");
return 9;
}
}
public class Child extends Parent{
public static int t=childStaticMethod2();

{
System.out.println("子类非静态初始化块");
}
static{
System.out.println("子类静态初始化块");
}
public Child(){
System.out.println("子类的构造方法");
}
public static int childStaticMethod(){
System.out.println("子类的静态方法");
return 1000;
}
public static int childStaticMethod2(){
System.out.println("子类的静态方法2");
return 1000;
}
public static void main(String[] args) {

        Parent child=new Child();
}

}
结果:
父类的静态方法2
父类静态初始化块
子类的静态方法2
子类静态初始化块
父类非静态初始化块
父类的构造方法
子类非静态初始化块
子类的构造方法

总结:当构造一个子类对象时,先加载父类静态变量和静态代码块,然后是子类静态变量和静态代码块,再然后执行父类非静态代码块和父类构造方法,最后执行子类非静态代码块和子类构造方法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics