A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程旦 中级黑马   /  2012-4-11 19:35  /  2095 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.   class Parent {

  2.           public static String p_StaticField = "父类--静态变量";
  3.           public String p_Field = "父类--变量";
  4.           static {
  5.                   System.out.println(p_StaticField);
  6.                   System.out.println("父类--静态初始化块");
  7.           }
  8.           {
  9.                   System.out.println(p_Field);
  10.                   System.out.println("父类--初始化块");
  11.           }
  12.           public Parent() {
  13.                    System.out.println("父类--构造器");
  14.            }
  15.   }
  16.   public class SubClass extends Parent {
  17.           public static String s_StaticField = "子类--静态变量";
  18.            public String s_Field = "子类--变量";
  19.            static {
  20.                    System.out.println(s_StaticField);
  21.                    System.out.println("子类--静态初始化块");
  22.            }
  23.            {

  24.                    System.out.println(s_Field);

  25.                    System.out.println("子类--初始化块");

  26.            }
  27.            public SubClass() {
  28.                    System.out.println("子类--构造器");
  29.            }
  30.            public static void main(String[] args) {
  31.                    new SubClass();
  32.            }
  33.   }
复制代码
有哪位亲帮我看看这题目的运行结果吗  并帮我分析分析

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

5 个回复

倒序浏览
对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
回复 使用道具 举报
父类静态代码块 ——>子类静态代码块 ——>  父类的非静态构造代码块 ——>  父类的构造方法——> 子类的非静态代码块 ——> 子类构造方法
回复 使用道具 举报
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
父类--变量
父类--初始化块
父类--构造器
子类--变量
子类--初始化块
子类--构造器
分析:
静态先执行,随着类的创建而加载,优先于对象先存在。
随后是构造代码块执行。
然后是构造函数执行。
子类继承父类。先执行父类程序,在执行子类程序。
静态>构造代码块>构造函数
父类>子类
子类静态>父类构造代码块

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
邓斌 发表于 2012-4-11 20:16
父类--静态变量
父类--静态初始化块
子类--静态变量

懂了。。。很明白
回复 使用道具 举报
邓斌 发表于 2012-4-11 20:16
父类--静态变量
父类--静态初始化块
子类--静态变量

懂了。。。很明白很清楚
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马