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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© javaking 高级黑马   /  2015-7-4 21:00  /  325 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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的?

0 个回复

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