欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java子类实例初始化过程

发布时间:2024/10/12 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java子类实例初始化过程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

子类的实例化主要分为两个步骤:

<1>.类相关静态内容初始化;

*先父类再子类:

  1.父类的static属性;

  2.父类的static块;

  3.子类的static属性;

  4.子类的static块;

<2>.类的实例内容初始化;

*调用构造子:先父类后子类:构造子调用之前先实例化实例字段和块

  5.父类的普通属性;

  6.父类的普通块;

  7.父类的构造子;

  8.子类的普通属性;

  9.子类的普通块;

  10.子类的构造子;

 

举例:

package basic;public class ClzInit {public static void main(String[] args) {new Son();} } class Parent {protected int n = 5;protected static int m = 5;static {m = m * 2;System.out.println("父类静态块调用; m="+m);}{n = n * 2;m = m * 2;System.out.print("父类普通块调用;");System.out.print("n="+n);System.out.println(" m="+m);}public Parent() {this.n = n * 10;m = m + 10;System.out.print("父类构造子; n="+n);System.out.println(" m="+m);} }class Son extends Parent {private int sn=3;private static int sm=3;static {m = m + 2;sm=sm+2;System.out.println("子类静态块调用; m="+m);}{n = n + 2;sn=sn+2;m = m + 2;System.out.println("子类普通块调用;");System.out.print("n="+n);System.out.print("sn="+sn);System.out.println(" m="+m);}public Son() {this.n = n + 10;sn=sn+10;m = m + 10;System.out.print("子类构造子;n="+n);System.out.println(" m="+m);} }

 看输出结果,可见端倪:

父类静态块调用; m=10 子类静态块调用; m=12 父类普通块调用;n=10 m=24 父类构造子; n=100 m=34 子类普通块调用; n=102sn=5 m=36 子类构造子;n=112 m=46

 备忘。欢迎各位指正!

转载于:https://www.cnblogs.com/niewj/archive/2012/12/14/4041221.html

总结

以上是生活随笔为你收集整理的java子类实例初始化过程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。