zoukankan      html  css  js  c++  java
  • 继承的初始化过程

    看think in java 7.9.1继承的初始化过程的例子,并没有讲到static 代码块的初始化顺序

    类在初次使用的时候才会被加载,static代码会在加载的时候初始化,所以一个类按照先加载static变量—>static 代码块->普通变量->构造器代码 的顺序进行初始化

    而出现继承的时候,类的初始化顺序如下

    1.父类的static 变量

    2.父类的static 代码块

    3.子类的static 变量

    4.子类的static 代码块

    5.父类的变量

    6 父类的构造器

    7 子类的变量

    8.子类的构造器

    写个demo验证下

    public class TestExtends extends  Base{
        private static  String x21=print("x21");
        private String x22=print("x22");
    
        public TestExtends()
        {
        print("x2");
        }
    
        static
        {
            print("x23");
        }
        public static void main(String[] args) {
        new TestExtends();
        }
    
    }
    
    class Base
    {
        private static String x11=print("x11");
        private String x12=print("x12");
        public Base()
        {
            print("x1");
        }
        static
        {
            print("x13");
        }
        protected static  String print(String s)
        {
            System.out.println(s);
            return s;
        }
    }

    结果如下

  • 相关阅读:
    Linux--shell的awk--10
    Spring Boot 整合 tk.mybatis
    pring Boot 整合 Druid
    Thymeleaf 模板布局
    Thymeleaf 内置对象
    Thymeleaf 表达式语法
    Thymeleaf 参考手册
    Thymeleaf常用语法
    Thymeleaf简介及第一个thymeleaf模板
    Docker 安装nginx
  • 原文地址:https://www.cnblogs.com/pigercc/p/5819930.html
Copyright © 2011-2022 走看看