静态初始化块的执行顺序
package jxlPacakge;
class Root
{
?static{
??System.out.println("Root的靜態(tài)初始化塊");
?}
?{
??System.out.println("Root的普通初始化塊");
?}
?public Root()
?{
??System.out.println("Root的無參數(shù)的構(gòu)造器");
?}
}
class Mid extends Root
{
?static{
??System.out.println("Mid的靜態(tài)初始化塊");
?}
?{
??System.out.println("Mid的普通初始化塊");
?}
?public Mid()
?{
??System.out.println("Mid的無參數(shù)的構(gòu)造器");
?}
?public Mid(String msg)
?{
??//通過this調(diào)用同一類中重載的構(gòu)造器
??this();
??System.out.println("Mid的帶參數(shù)構(gòu)造器,其參數(shù)值:" + msg);
?}
}
class Leaf extends Mid
{
?static{
??System.out.println("Leaf的靜態(tài)初始化塊");
?}
?{
??System.out.println("Leaf的普通初始化塊");
?}?
?public Leaf()
?{
??//通過super調(diào)用父類中有一個字符串參數(shù)的構(gòu)造器
??super("Java初始化順序演示");
??System.out.println("執(zhí)行Leaf的構(gòu)造器");
?}
}
public class TestStaticInitializeBlock
{
?public static void main(String[] args)
?{
??new Leaf();
??
?}
}
?
創(chuàng)建子類型的對象時,也會導(dǎo)致父類函數(shù)的執(zhí)行,先執(zhí)行靜態(tài)函數(shù),在執(zhí)行public函數(shù),最后執(zhí)行函數(shù)
?
轉(zhuǎn)載于:https://www.cnblogs.com/shouhutian/p/5983807.html
總結(jié)
以上是生活随笔為你收集整理的静态初始化块的执行顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LSI SAS 3108 配置操作
- 下一篇: [ASP.NET Core] Stati