zoukankan      html  css  js  c++  java
  • 练习题------代码块

    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的构造器

  • 相关阅读:
    001.Kubernetes简介
    DOCKER学习_018:Docker-Compose文件简介
    DOCKER学习_017:Docker-Compose介绍
    DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理
    DOCKER学习_015:Docker网络补充
    接口漏洞
    Shodan搜索引擎在信息搜集中的应用
    Google在情报搜集中的基础技巧
    数据抓包分析基础
    文件上传之图片木马的学习
  • 原文地址:https://www.cnblogs.com/lxsfve/p/13274941.html
Copyright © 2011-2022 走看看