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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高浩 中级黑马   /  2013-1-11 22:37  /  1890 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-1-16 12:33 编辑

如果存在继承,如果 创建子类对象时,程序该是如何的执行过程,详细的告诉我一下?
劳烦各位了!

4 个回复

倒序浏览
在对子类对象进行初始化时,父类的构造函数也会运行,
那是因为子类的构造函数默认第一行有一条隐式的语句 super();
super():会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super();

子类的实例化过程中,子类的所有的构造函数,默认都会访问父类中空参数的构造函数。
因为子类每一个构造函数内的第一行都有一句隐式super();
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个!

查看全部评分

回复 使用道具 举报
http://bbs.itheima.com/thread-36239-1-1.html 传送门 已经很清楚了

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个!

查看全部评分

回复 使用道具 举报
子类来源于父类,子类的构造方法总是先调用父类的构造方法 当子类的构造方法构建对象时,首先执行父类的构造方法,然后才执行子类的构造方法
因为在子类的构造函数有个隐式的语句super(); 这个隐式的super()语句就会访问父类中的空参数的构造函数
如果父类中有定了有参的构造函数的话 在子类的构造方法的第一条语句指定一个匹配带参的super语句来访问父类的构造函数
例:class A{
        public A(){//先初始化父类的构造函数
                System.out.println("父类构造函数");
        }
}
class B{
        public B(){//再初始化子类的构造函数
                //super();隐式构造函数 注:如果父类是有参的构造函数那必须重定义一个和父类构造函数匹配的super();
                System.out.println("子类构造函数");
        }
}

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 赞一个!

查看全部评分

回复 使用道具 举报
谢谢大家帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马