代码块与构造函数的认识

来源:互联网 发布:矩阵的最大奇异值 编辑:程序博客网 时间:2024/06/06 00:11
静态代码块,普通代码块,构造函数先后顺序:

/*对于父类中的构造函数,普通代码块,静态代码块中的先后顺序
顺序是静态代码块,普通代码块,构造函数。对于子类继承父类,且子类
中也有自己的静态代码块,普通代码块,构造函数。当我们实例化一个对象时
首先输出的是父类静态代码块,子类静态代码块,父类普通代码块,父类构造函数
子类普通代码块,子类构造函数。
*/

简单举例:
  class HelloA{
    
    public HelloA(){
        System.out.println("HelloA");
    }
    
    //普通代码块
    {
        System.out.println("I am a  class");
    }
    //静态代码块
    static{
        System.out.println("static A");
    }
}

public class HelloB extends HelloA{
    public HelloB(){
        System.out.println("helloB");
    }
    
    {
        System.out.println("I am a  class");
    }
    static{
        System.out.println("static B");
    }
    
    public static void main(String[] args){
        new HelloB();
    }
}
/*
    输出结果:static A
              static B
              I am a class
              HelloA
              I am a Class
              HelloB
*/
原创粉丝点击