zoukankan      html  css  js  c++  java
  • 代码块执行顺序。

    class Father1{

    static{
    System.out.println("....static Father.....");
    }

    {
    System.out.println(".....父类非静态。。。");
    }

    public Father1(){
    System.out.println("---父类构造方法----");
    }
    }

    class Son1 extends Father1{

    static{
    System.out.println("....static Son.....");
    }



    public Son1(){
    System.out.println("---子类构造方法-----");
    }
    {
    System.out.println(".....子类非静态。。。");
    }
    }

    public class Demo3 {


    static{
    System.out.println("....主函数静态代码.....");
    }

    {
    System.out.println(".....主函数非--------静态代码。。。");
    }

    public static void main(String[] args) {

    Son1 s = new Son1();
    System.out.println("----输出完毕-------");
    Demo3 d = new Demo3();
    }

    }

    执行结果:

    ....主函数静态代码.....
    ....static Father.....
    ....static Son.....
    .....父类非静态。。。
    ---父类构造方法----
    .....子类非静态。。。
    ---子类构造方法-----
    ----输出完毕-------
    .....主函数非--------静态代码。。。

    所以顺序是:

    从主函数所在的类执行静态代码块,

    从父类执行静态代码块。

    从子类执行静态代码块。

    非静态代码块要在new对象,构造方法前是才执行;

    父类构造方法

    子类非静态

    子类构造方法

  • 相关阅读:
    模板
    2019牛客暑期多校训练营(第五场)
    Codeforces
    Codeforces
    SCUT
    模板
    Codeforces
    2019 Multi-University Training Contest 4
    Codeforces
    Codeforces
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4589718.html
Copyright © 2011-2022 走看看