牛客_{}大括号里面的内容都会执行,如果它不是成员函数的时候,看成是构造函数中的方法;

总结:

new一个子类对象的时候:

  1. 最先执行的是静态代码快,先父类,在子类
  2. 其次开始执行单独由大括号{}中的内容,在执行构造函数,先子类后父类
  3. 成员函数中的不会执行

 

 

题目:

检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

package t0820;

public class HelloB extends HelloA {
  public HelloB(){
      System.out.println("I’m BB class");  //构造函数会执行
  }  
  public void printB()   //成员函数在new时不会执行
  {
  System.out.println("I’m B class");
  }
  static    {
  System.out.println("static B");     //静态代码快会执行
  }
  public static void main(String[] args){
    new HelloB();
  }
}
class HelloA    {
  public HelloA(){
      System.out.println("I’m AA class");  // 构造函数会执行
    }
    {
    System.out.println("I’m A class");   //{}会执行,而且先于构造函数执行
    }
    static
    {
    System.out.println("static A");    //静态代码块最新执行
    }
}

结果为:

static A
static B
I’m A class
I’m AA class
I’m BB class

posted @ 2015-08-22 16:38  好想雨的云  阅读(266)  评论(0编辑  收藏  举报