300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序...

Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序...

时间:2024-06-05 04:19:20

相关推荐

Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序...

实例化子类时,父类与子类中的静态代码块、实例代码块、静态变量、实例变量、构造函数的执行顺序是怎样的?

代码执行的优先级为:

firest:静态部分

second:实例化过程

详细顺序为:

1.父类静态代码块与父类静态变量(取决于代码书写顺序)

2.子类静态代码块与子类静态变量(取决于代码书写顺序)

3.父类实例变量与父类代码块(取决于代码书写顺序)

4.父类构造函数

5.子类实例变量与父类代码块(取决于代码书写顺序)

6.子类构造函数

在JVM加载完类以后,类在被使用的时候初始化,静态部分只在类初始化的时候执行一次。

测试代码:

[java]view plaincopy classFather{Father(){LogUtil.log(System.currentTimeMillis()+"------父类构造函数");}static{LogUtil.log(System.currentTimeMillis()+"------父类静态代码块");}longx=getTime("------父类实例变量");{longtime=System.currentTimeMillis();LogUtil.log(time+"------父类代码块");}staticlongy=getTime("------父类静态变量");staticlonggetTime(Stringwho){longtime=System.currentTimeMillis();LogUtil.log(time+who);returntime;}}classChildextendsFather{Child(){LogUtil.log(System.currentTimeMillis()+"------子类构造函数");}staticlongy=getTime("------子类静态变量");static{LogUtil.log(System.currentTimeMillis()+"------子类静态代码块");}{longtime=System.currentTimeMillis();LogUtil.log(time+"------子类代码块");}longx=getTime("------子类实例变量");staticlonggetTime(Stringwho){longtime=System.currentTimeMillis();LogUtil.log(time+who);returntime;}}

调用代码:

[java]view plaincopy newThread(newRunnable(){@Overridepublicvoidrun(){newChild();LogUtil.log("分隔符------分隔符");newChild();}}).start();

执行结果:

[plain]view plaincopy 11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类静态代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类静态变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------子类静态变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------子类静态代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类实例变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类构造函数11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------子类代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------子类实例变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------子类构造函数11-0320:02:03.3507533-7881/?E/AKADDEMO:分隔符------分隔符11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类实例变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523353------父类构造函数11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523354------子类代码块11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523354------子类实例变量11-0320:02:03.3507533-7881/?E/AKADDEMO:1478174523354------子类构造函数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。