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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 谢洋 于 2013-3-4 00:12 编辑

如果子类中都没有复写父类构造函数,子类在创建对象时可以直接使用父类的非空参构构函数?
为什么?

6 个回复

正序浏览
王海龙2013 来自手机 中级黑马 2013-3-3 19:18:38
7#
手机回个真累来自: Android客户端
回复 使用道具 举报
王海龙2013 来自手机 中级黑马 2013-3-3 19:17:46
地板
继承包括父类的属性变量,子类构造函数初始化时要先去调用父类的构造函数进行初始化。默认构造函数是空参数的,因此默认调用也是空参数的。要调用指定类型的要在第一行super(指定类型)才能调用,如果父类没有空参数构造函数,子类也没有调用指定构造函数会报错的。建议你再看一遍毕老师对继承的课。应该就能理解了。来自: Android客户端
回复 使用道具 举报
首先你得明白,继承的概念。然后 明白子类的实例化过程。这样和你说吧,子类创建对象会先创建父类的对象。创建父类的对象当然会调用父类的构造函数。明白吗
回复 使用道具 举报
构造函数不存在覆写的说法,子类的构造函数在默认的情况下就是可以调用父类的构造函数的,至于调用哪个就是看参数而定的,用super来调用。
回复 使用道具 举报
没有复写构造函数之说...假如你想用父类的非空构造函数..就这样..例如: super(a,b);   记住,一定要写在第一行.
回复 使用道具 举报
父类:
class father{
String name;
int age;
father(){}

father(String name,int age){
this.name=name;
this.age=age;
}

}
子类::
class Son{
String id;
son( String name,int age,String id){
super(name,age);
this.id=id;
}
}
主类:
class MainClass{
public static void main(String[]args){
Son son=new Son("wanglin",18,"10001");//子类在创建对象的时候就调用了父类的非空构造函数}
}

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

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