标签:div 初始化 lan tail 类的初始化顺序 oschina 关系 code blog
本文链接 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中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
标签:div 初始化 lan tail 类的初始化顺序 oschina 关系 code blog
原文地址:http://www.cnblogs.com/gccbuaa/p/6722434.html