美文网首页
java类各部分初始化顺序

java类各部分初始化顺序

作者: zhengaoly | 来源:发表于2022-09-14 15:11 被阅读0次

    参考文章
    原文

    package libtest;
    
    class Person {
        static {
            System.out.println("我是Person类的静态初始化块");
        }
         {
            System.out.println("我是Person类的普通初始化块");
        }
         public Person() {
             System.out.println("我是Person类的无参构造器");
         }
    }
    class Police extends Person{
        static {
            System.out.println("我是Police类的静态初始化块");
        }
        {
            System.out.println("我是Police类的普通初始化块");
        }
         public Police() {
             System.out.println("我是Police类的无参构造器");
         }
         public Police(int a) {
             //调用自己的无参构造器
             this();
             System.out.println("我是Police类的有参构造器,参数为:"+a);
         }
    }
    class SWAT extends Police{
        static {
            System.out.println("我是SWAT的静态初始化块");
        }
        {
            System.out.println("我是SWAT的普通初始化块");
        }
        public SWAT() {
            //调用直接父类的有参构造器
            super(10);
            System.out.println("我是SWAT的无参构造器");
        }
    }
    public class Demo01 { 
        public static void main(String[] args) {
            new SWAT();
        }
    }
    
    

    结果:

    我是Person类的静态初始化块
    我是Police类的静态初始化块
    我是SWAT的静态初始化块
    我是Person类的普通初始化块
    我是Person类的无参构造器
    我是Police类的普通初始化块
    我是Police类的无参构造器
    我是Police类的有参构造器,参数为:10
    我是SWAT的普通初始化块
    我是SWAT的无参构造器
    

    相关文章

      网友评论

          本文标题:java类各部分初始化顺序

          本文链接:https://www.haomeiwen.com/subject/jjorortx.html