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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沈子豪 中级黑马   /  2013-3-4 21:40  /  1646 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 沈子豪 于 2013-3-4 23:27 编辑

子类继承父类时候默认先调用父类的无参构造方法,是不是不管子类有无构造方法,或者构造方法无论有参无参都先调用父类的无参?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

8 个回复

倒序浏览
是的,除非你指定调用父类有参构造函数
回复 使用道具 举报
不管怎么样,子类一定会调用父类的构造自身的初始化,则否是无法通过编译的;
子类对象内部都会有一个父类对像,如果不这样,那也不叫继成
回复 使用道具 举报
林明华 发表于 2013-3-4 21:52
是不是不管子类有无构造方法,或者构造方法无论有参无参都先调用父类的无参?
不是这样子的。每个类中,如 ...

这个3中的最终会调用到父类无参的构造器怎么理解?

若是父类显示定义了有参和无参的构造函数,而且子类的构造函数中也指明了调用父类有参构造函数,那就不会调用无参的构造函数了啊
回复 使用道具 举报
首先子类中的方法必须调用父类的构造方法,如果父类中只有一个有参的构造方法,你在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,你没有写的话会自动调用的
回复 使用道具 举报
林明华 发表于 2013-3-4 23:35
子类不调用父类无参构造器情况只有一种,就是父类中显式定义了有参构造器,而没有无参构造器,此时在子类 ...

父类中有无参和有参构造方法,子类如果没有写的话会隐含super();  但如果子类手动添加了super去访问有参构造方法的话是可以的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马