黑马程序员技术交流社区

标题: 关于对象初始化的问题 [打印本页]

作者: javaking    时间: 2015-7-4 21:00
标题: 关于对象初始化的问题
class Fu
{
        int num=9;
        {
                System.out.println("父构造代码块"+num);
        }
        void show()
        {
                System.out.println("父show方法");
        }
        Fu()
        {
                super();
                //显示初始化》构造代码块》构造函数
                System.out.println("父构造函数"+num);
                num=10;
                show();
        }
}

class Zi extends Fu
{
        int num=11;
        {
                System.out.println("子构造代码块"+num);
        }
        Zi()
        {
                super();
                //显示初始化》构造代码块》构造函数
                System.out.println("子构造函数"+num);
                num=12;
        }
        void show()
        {
                System.out.println("子show方法"+num);
        }
}
class  ObjDemo
{
        public static void main(String[] args)
        {
                new Zi();
        }
        /*
        子 中定义 int num=11;
        结果如下
        父构造代码块9
        父构造函数9
        子show方法0
        子构造代码块11
        子构造函数11
        */
        /*
        子 中 不定义 int num=11;
        结果如下
        父构造代码块9
        父构造函数9
        子show方法10
        子构造代码块10
        子构造函数10
        */

}

问一下 子类 定义 int num=11;时 ,运行结果的第三行 “子show方法0” 中的“0”是什么时候被子类重新初始化为0的?




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