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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


    对静态代码块以及构造函数的执行先后顺序,一直很迷惑,看了孙伟琴老师的《java面向对象编程》又结合毕老师的java基础视频中的讲解,现用下面的这段小程序来简明扼要的叙述一下,以加深理解,与君共勉....


                public class Fu {
                                      static {
                                            System.out.print(1);
                                                  }
                                      public Fu() {
                                             System.out.print(2);
                                                 }
                                          }
               public class Zi extends Fu {
                                       static {
                                            System.out.print("a");
                                                 }
                                       public Zi() {
                                            System.out.print("b");
                                                   }
                                           }
           public class demo {
                          public static void main(String[] args) {
                                         Fu fu = new Zi();
                                         fu = new Zi();
                                                      }
                                             }
1.
       当父类与子类都有静态代码块和构造函数的时候,执行顺序如下:
       父类静态代码块 > 子类静态代码块 java虚拟机加载类时,就会执行该块代码。
       父类构造函数 > 子类构造函数 (先有父亲,后有孩子)
       如果是多级继承关系的话,高层的父类首先执行,然后依次递减


评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

10 个回复

倒序浏览
结果是 2b2吗?
回复 使用道具 举报
把结果贴出来岂不更好
回复 使用道具 举报
赞一个。:lol
回复 使用道具 举报
结果是1a2b2b
回复 使用道具 举报

结果  。。。1a2b2b
回复 使用道具 举报
学习学习了
回复 使用道具 举报
先执行静态代码块,再执行构造函数
回复 使用道具 举报
小徐_y8nUx 发表于 2015-4-9 18:25
结果  。。。1a2b2b

哈哈  我多态还没学到  先了解下
回复 使用道具 举报
附上结果效果会更好 大家能对应的去了解
回复 使用道具 举报
樱空之雪 发表于 2015-4-9 19:24
先执行静态代码块,再执行构造函数

静态代码块是随着类的加载而加载,构造函数是随着对象的加载而加载
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马