首页 > 代码库 > Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
本文链接 http://blog.csdn.net/xiaodongrush/article/details/29170099
參考文章 http://my.oschina.net/leoson/blog/103251
1. 一个类中的初始化顺序
(静态变量、静态初始化块)=>(变量、初始化块、构造器)。
2. 两个具有继承关系类的初始化顺序
父类的(静态变量、静态初始化块)=> 子类的(静态变量、静态初始化块)=> 父类的(变量、初始化块、构造器)=> 子类的(变量、初始化块、构造器)。
以下举例说明:
class A { public A() { System.out.println("Constructor A"); } { System.out.println("Field A"); } static { System.out.println("Static A"); } } public class B extends A { public B() { System.out.println("Constructor B"); } { System.out.println("Field B"); } static { System.out.println("Static B"); } public static void main(String[] args) { new A(); new B(); } }new A()的结果
Static A
Static B
Field A
Constructor A
new B()的结果,静态成员和静态初始化块仅仅会运行一次。
Field A
Constructor A
Field B
Constructor B
Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。