zoukankan      html  css  js  c++  java
  • java初始化顺序

    基本顺序为:
    1 继承体系的所有静态成员初始化(先父类,后子类)
    2 父类初始化完成(普通成员的初始化-->构造函数的调用)
    3 子类初始化(普通成员-->构造函数)

    Java初始化顺序如图:



     

    实例代码:
    package initialization;
    
    public class TestInit {
    
    	// 主函数
    	public static void main(String str[]) {
    
    		System.out.println("无继承情况下初始化顺序:");
    		new Test();
    		
    		System.out.println("
    带有继承情况下初始化顺序:");
    		new TestSub();
    
    	}
    }
    
    class Sample {
    	Sample(String s) {
    		System.out.println(s);
    	}
    
    	Sample() {
    		System.out.println("Sample默认构造函数被调用");
    	}
    }
    
    class Test {
    	static Sample sam = new Sample("静态成员sam初始化");
    	Sample sam1 = new Sample("sam1成员初始化");
    	static {
    		System.out.println("static块执行");
    		if (sam == null)
    			System.out.println("sam is null");
    		sam = new Sample("静态块内初始化sam成员变量");
    	}
    
    	Test() {
    		System.out.println("Test默认构造函数被调用");
    	}
    
    }
    
    class TestSub extends Test
    {
        static Sample staticSamSub=new Sample("子类 静态成员staticSamSub初始化");
        TestSub()
        {
              System.out.println("子类 TestSub 默认构造函数被调用");
        }
        Sample sam1=new Sample("子类 sam1成员初始化");
        static Sample staticSamSub1=new Sample("子类 静态成员staticSamSub1初始化");
        
        static{System.out.println("子类 static 块  执行");}
        Sample sam2=new Sample("子类 sam2成员初始化");
    }
    
    /*	输出结果:
    
    无继承情况下初始化顺序:
    静态成员sam初始化
    static块执行
    静态块内初始化sam成员变量
    sam1成员初始化
    Test默认构造函数被调用
    
    带有继承情况下初始化顺序:
    子类 静态成员staticSamSub初始化
    子类 静态成员staticSamSub1初始化
    子类 static 块  执行
    sam1成员初始化
    Test默认构造函数被调用
    子类 sam1成员初始化
    子类 sam2成员初始化
    子类 TestSub 默认构造函数被调用
    
    */
     

  • 相关阅读:
    爬取阳光问政平台
    CrawlSpider爬取腾讯招聘信息
    LinkExtractor
    镜像源列表
    screen命令总结
    PHP解决中文乱码问题
    Linux查找大文件或目录
    CentOS6/7系列防火墙管理
    删除win10冗余的服务
    解决win10安装wireshark新版本,欢迎界面卡顿情况
  • 原文地址:https://www.cnblogs.com/jdflyfly/p/3810863.html
Copyright © 2011-2022 走看看