首页 > 其他分享 >动手动脑(四)静态初始化块的执行顺序 9.30

动手动脑(四)静态初始化块的执行顺序 9.30

时间:2022-10-02 21:44:37浏览次数:38  
标签:9.30 初始化 Leaf 动脑 System Mid println out

package test2;


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();
		

	}
}

  

结果:

Root的静态初始化块
Mid的静态初始化块
Leaf的静态初始化块
Root的普通初始化块
Root的无参数的构造器
Mid的普通初始化块
Mid的无参数的构造器
Mid的带参数构造器,其参数值:Java初始化顺序演示
Leaf的普通初始化块
执行Leaf的构造器

  

静态初始化块只执行一次,当对象创建时,最先进行静态初始化块的执行,且创建子类型的对象时,也会导致父类型的静态初始化块的执行且最先执行。

然后按父类子类顺序,先执行普通初始化块,然后为无参构造

 

标签:9.30,初始化,Leaf,动脑,System,Mid,println,out
From: https://www.cnblogs.com/ashuai123/p/16749537.html

相关文章

  • 试验:Java字段初始化的规律
    packagetest2;publicclassInitializeBlockDemo{ /** *@paramargs */ publicstaticvoidmain(String[]args){ InitializeBlockClassobj=newIni......
  • 动手动脑(三)9.30
    packagetest2;publicclassDemo2{ publicstaticvoidmain(String[]args){ Fooobj1=newFoo(); }}classFoo{ intvalue=100; publicFoo(in......
  • java--数组学习(2)数组的内存分析和数组三种初始化
    java的内存分析1.java内存分析:  2.数组初始化  例子代码默认初始化就是创建后int[]a=newint[10];里面有个0-9十个空间未赋值的情况下,里面都有值。基本......
  • 003.初始化SpringIoc(s01演示项目)
         ......
  • 构造函数初始化列表的基本形式
    https://blog.csdn.net/m0_63783532/article/details/123833512?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-12383......
  • 继承中的初始化和加载
    继承关系中的执行顺序代码packageonjava8.extend;/***继承关系中的执行顺序*/classInsect{privateinti=9;protectedintj;{Sy......
  • 创建和初始化对象、构造函数详解
    创建和初始化对象、构造函数详解使用new关键字创建对象使用new关键字创建的时候,不仅会分配内存空间,还会进行默认的初始化以及调用类中的构造器packageoop.subject;......
  • 动手动脑课后实验2
    一般初始化:1.没有继承静态变量、静态初始化块-->变量、变量初始化块–>构造方法2.有继承的情况父类静态变量、父类静态初始化块–>子类静态变量、子类静态初始化块–>......
  • 英语演讲9.30
    ChangedandUnchangedItisknowntoallthatastimepasses,theremustbemuchdifferencebetweenpastandpresentthetopicthatIamgoingtotalkabou......
  • flower in 9.30
    我不知道我题都没改完我写什么鲜花。但是懒得改了。T3考场出了个大概是正解的东西然后写了160行将近5k代码心态就崩了(当时差不多十点,我就只做了T3)然后暴力跑路。然后挂成1......