zoukankan      html  css  js  c++  java
  • java中静态代码块,构造代码块,以及构造方法的执行顺序

    写了许久的代码,却把一些基础的东西都给忘了;

    今天跟一新入职的小姑娘讲解时,就顺手写了个,然后测试下,发现跟我记忆中的竟然有些出入。

    父类pojo:

    public class Pojo {
        static {
            System.out.println("父类的静态代码块");
        }
    
        {
            System.out.println("父类的代码块");
        }
    
        Pojo() {
            System.out.println("父类的无参构造方法");
        }
    
        Pojo(int xx) {
            System.out.println("父类的带参构造方法");
        }
    
    }
    

    子类的pojo:

    public class PojoChild extends Pojo {
        {
            System.out.println("子类的代码块");
        }
        static {
            System.out.println("子类的静态代码块");
        }
    
          PojoChild() {
              super();
              System.out.println("子类的无参构造方法");
        }
          PojoChild(int xx) {
              System.out.println("子类的带参构造方法");
        }
    }
    

    然后main方法测试下,结果如下:

    这次调用的是子类的带参构造方法:

    如果调用的是子类的无参构造方法,最后执行的就是子类的无参构造方法了:

    其执行顺序如下:  父类静态代码块->子类的静态代码块->父类的构造代码块->父类的无参构造方法->子类的构造代码块->子类的无参(带参)构造方法。

    真是越学越倒退了,╮(╯▽╰)╭

  • 相关阅读:
    windows查看和杀死占用端口的进程
    jenkins html报告不显示样式
    解决git一直输入用户名和密码的问题
    git中文乱码问题
    java环境变量配置
    web service
    sql 训练及总结
    js 及jQery
    [TYVJ] P1015 公路乘车
    GIT 基本用法
  • 原文地址:https://www.cnblogs.com/lewskay/p/6401002.html
Copyright © 2011-2022 走看看