zoukankan      html  css  js  c++  java
  • 有关静态代码块、代码块、构造方法执行顺序

    public class TestDemo2 {
        public static void main(String[] args) {
            new B();
        }
    }
    
    class A{
        public A(){  //无参构造
            System.out.println("a1");
        } 
        {System.out.println("a2");}  //代码块
        static{System.out.println("a3");}   //静态代码块
    }
    
    class B extends A{
        public B(){
            System.out.println("b1");
        }
        {System.out.println("b2");}
        static{System.out.println("b3");}
    }

    以上代码的输出结果是a3、b3、a2、a1、b2、b1

    我们文字描述:

      1、首先会执行父类中的静态代码块,再执行子类中的静态代码块

      2、执行父类中的代码块、再执行父类中的构造方法

      3、执行子类中的代码块、再执行子类中的构造方法

    总结:父静、子静、父非构、父构、子非构、子构

    补充:

      当父类A、和子类B中有有参构造方法的时候,我们new B(“3”),通过有参构造实例化对象时,会调用父类A中的无参构造和子类B中对应的有参构造;

  • 相关阅读:
    c/c++ -->对象和类
    zynq基础-->LINUX 设备树
    zynq基础-->yocto
    python3-->基础操作
    构建之法-->概论
    zynq基础-->linux下软件应用
    zynq基础-->系统构架
    网络基础-->http协议
    (转)频谱仪测试pll锁定时间
    modelsim仿真
  • 原文地址:https://www.cnblogs.com/my0901/p/6802691.html
Copyright © 2011-2022 走看看