• 练习题------代码块


    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("尚硅谷");
        System.out.println("Leaf的构造器");
      }
    }
    
    public class LeafTest {
      public static void main(String[] args) {
        new Leaf();
      }
    }
    

      其中LeafTest  测试类中进行测试    创建Leaf类的对象 由于存在继承关系,创建对象的顺序   Root--->  Mid ---->Leaf   ,静态代码块随着类的加载而执行 非静态代码块是创建对象的时候而执行的,所以执行代码,输出的效果为:

    Root的静态初始化块
    Mid的静态初始化块
    Leaf的静态初始化块
    Root的普通初始化块
    Root的无参数的构造器
    Mid的普通初始化块
    Mid的无参数的构造器
    Mid的带参数构造器,其参数值:尚硅谷
    Leaf的普通初始化块
    Leaf的构造器

  • 相关阅读:
    RPA浏览器及word需要注意的点
    捕获alert弹框
    创建文件夹
    Excel 筛选功能
    RPA_播放语音
    flask路由
    python操作git
    RPA_关键词识别
    初始flask
    RPA中需要注意的问题
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13274941.html
Copyright © 2020-2023  润新知