美文网首页
静态初始化块出生顺序理解

静态初始化块出生顺序理解

作者: 无心丨丨丨 | 来源:发表于2018-02-06 20:30 被阅读0次
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的构造器");
    }
}
/**
 * 
 *下面主函数
 *首先调用Leaf()构造器,调用构造器相当于Leaf类就被加载了,super调用父类构造器,类加载时候相当于首先执行Leaf的父类的静态,然后再执行子类的静态,最后执行父类的非静态,最后是
 */
public class TestLeaf{
    public static void main(String[] args){
        new Leaf();
        System.out.println();
        new Leaf();
    }
}

相关文章

  • 静态初始化块出生顺序理解

  • 设计模式——工厂,策略,建造者

    Java 类初始化顺序基本分为以下几种:静态块,初始化块,静态方法,构造函数块,静态变量,成员变量对于块顺序,静态...

  • java类初始化机制

    初始化顺序 无继承类初始化 初始化顺序静态变量/静态代码块 -> 成员变量/代码块 -> 构造函数其中,静态变量与...

  • 类初始化顺序

    对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • java初始化顺序

    存在继承关系时 父类static块和静态成员变量,按顺序初始化 子类static块和静态成员变量,按顺序初始化 父...

  • Java中类的加载顺序

    以前对类的加载顺序,静态变量的初始化,普通变量的初始化,构造函数的初始化,构造代码块,静态代码块的初始化顺序一直搞...

  • 2020-02-01Java程序的初始化顺序

    初始化顺序: 对于一个单独的类而言:静态部分(静态成员变量 + 静态代码块):按照定义顺序进行初始化普通成员(普通...

  • 构造器内部的多态方法的行为

    上一篇 :Java类初始化顺序 上一节我们简单总结了类的初始化顺序。父类(静态变量、静态初始化块)>子类(静态变量...

  • Java类的初始化顺序

    Java类的初始化顺序 (静态变量、静态代码块)> 类里的 main()(如果有的话) > (变量、初始化块) >...

网友评论

      本文标题:静态初始化块出生顺序理解

      本文链接:https://www.haomeiwen.com/subject/fylnzxtx.html