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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 没有翅膀的小鸟 中级黑马   /  2014-7-10 12:57  /  687 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.当类之间有继承关系后,创建对象时初始化的顺序如下
1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
4. 父类构造方法
5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
6. 子类构造方法
class X
{       
     //父类的实例成员,执行优先为第3
    Y b=new Y(1);
    X()
      {
        //接下来就调用父类构造函数,执行优先为第4
          System.out.print("X");
       }
      class Y
          {
                 Y()
                   {
                           System.out.print("Y");
                    }
                  Y(int a)
                  {
                    System.out.print("A");
                   }
            }
}
class Z extends X
{
        //子类实例成员被执行,执行优先为第5
        Y y=new Y();
        Z()
        {
                //最后才执行子类构造方法,执行优先第6
                System.out.print("Z");
        }
        public static void main(String[] args)
        {
                Z z=new Z();
        }
}
按照上面的规则打印的就是 A X Y Z

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马