zoukankan      html  css  js  c++  java
  • 静态初始化块的执行顺序

    package jxlPacakge;

    class Root
    {
     static{
      System.out.println("Root的静态初始化块");
     }
     {
      System.out.println("Root的普通初始化块");
     }
     public Root()
     {
      System.out.println("Root的无参数的构造器");
     }
    }
    class Mid extends Root
    {
     static{
      System.out.println("Mid的静态初始化块");
     }
     {
      System.out.println("Mid的普通初始化块");
     }
     public Mid()
     {
      System.out.println("Mid的无参数的构造器");
     }
     public Mid(String msg)
     {
      //通过this调用同一类中重载的构造器
      this();
      System.out.println("Mid的带参数构造器,其参数值:" + msg);
     }
    }
    class Leaf extends Mid
    {
     static{
      System.out.println("Leaf的静态初始化块");
     }
     {
      System.out.println("Leaf的普通初始化块");
     } 
     public Leaf()
     {
      //通过super调用父类中有一个字符串参数的构造器
      super("Java初始化顺序演示");
      System.out.println("执行Leaf的构造器");
     }

    }

    public class TestStaticInitializeBlock
    {
     public static void main(String[] args)
     {
      new Leaf();
      

     }
    }

    创建子类型的对象时,也会导致父类函数的执行,先执行静态函数,在执行public函数,最后执行函数

  • 相关阅读:
    jQuery扩展函数设置所有对象只读
    Jquery一些实用函数
    原码,反码,补码
    数据库查询练习
    已知二叉树的先序遍历和中序遍历画出该二叉树
    linux 下 Google配置SwitchyOmega
    字母和数字转换
    c++产生验证码字符串
    C++产生随机数
    快速排序
  • 原文地址:https://www.cnblogs.com/shouhutian/p/5983807.html
Copyright © 2011-2022 走看看