黑马程序员技术交流社区

标题: 面向对象 :继承 [打印本页]

作者: shenzhinishimen    时间: 2016-6-8 21:17
标题: 面向对象 :继承

import org.omg.Messaging.SyncScopeHelper;

public class Demo5 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
        //分析:
                //分析                                                                        输出结果
                //调用子类之前会先调用父类的静态方法                                 静态代码块Fu
                //调用自身的静态方法                                                        静态代码块Zi
                //在然后调用自身的构造方法,  调用子类构造方法之前有super();调用父类的构造方法,
                //因为java中是分层初始化的,先初始化父类,再初始化子类,所以先走的父类构造,但是在执行
                //父类构造时,发现父类有构造代码块,构造代码块是优先于构造方法执行的所以输出
                                                                                          //构造代码块Fu
                //输出父类的构造方法                                                  //构造方法Fu
                //输出子类的构造代码块                                          //构造代码块Zi
                //输出子类的构造方法                                                  //构造方法Zi
                Zi zi = new Zi();
               
        }

}

class Fu {
        //静态代码块只执行一次
        static {
                System.out.println("静态代码块Fu");
        }
        //构造代码块优先于构造方法执行
        {
                System.out.println("构造代码块Fu");
        }
        //构造方法
        public Fu() {
                System.out.println("构造方法Fu");
        }
}

class Zi extends Fu {
       
        static {
                System.out.println("静态代码块Zi");
        }

        {
                System.out.println("构造代码块Zi");
        }

        public Zi() {
                //super();                                                //构造方法运行子类的构造方法之前要先走父类的构造方法
                                                                               
                System.out.println("构造方法Zi");
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2