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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hison_lian 中级黑马   /  2015-5-15 21:12  /  601 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

假如父类中有有参构造方法,没有无参构造方法怎么通过子类中的构造方法访问父类的构造方法

16 个回复

倒序浏览
如果这个类中有个有参的构造函数,没有无参的构造函数的话就不能调用无参的构造函数,通常我们都会添加一个无参的构造函数
回复 使用道具 举报
new 对象
回复 使用道具 举报
用多态。
回复 使用道具 举报
父类中一般会添加无参的构造方法,子类的构造方法中通过super指定调用父类的哪个构造方法,在实例化子类对象时,会自动调用父类无参的构造方法。
回复 使用道具 举报

如果父类没有无参构造,子类的构造方法默认调用父类的无参构造,在编译时就会报错。
这时候有两个办法:1、子类的构造方法中调用父类的有参构造,super(name);
                               2、子类的无参构造调用本类的其他构造,this(...);
回复 使用道具 举报
来学习楼上详细解释
回复 使用道具 举报
好像用super调用
回复 使用道具 举报
子类用super调用父类有参就好了啊
回复 使用道具 举报
通过super关键字来访问。无参就是super();
回复 使用道具 举报
用super关键字
回复 使用道具 举报
黄冬 发表于 2015-5-15 22:11
如果父类没有无参构造,子类的构造方法默认调用父类的无参构造,在编译时就会报错。
这时候有两个办法:1 ...

正解。。要通过手动定义super的参数来访问的父类中的同类型参数的构造函数
回复 使用道具 举报
super(参数)
回复 使用道具 举报
黄冬 发表于 2015-5-15 22:11
如果父类没有无参构造,子类的构造方法默认调用父类的无参构造,在编译时就会报错。
这时候有两个办法:1 ...

2可以调用父类的构造函数吗??
回复 使用道具 举报
懒儿想想 发表于 2015-5-16 22:47
2可以调用父类的构造函数吗??

那就是调用父类的有参构造了,这样就是解决方法1了。
其实,如果子类中有多个构造方法的话,最终必须要有一个去super()调用父类的构造的
回复 使用道具 举报
哦哦,最后还是用super(),我理解错误了
回复 使用道具 举报
夜愿Relax 来自手机 中级黑马 2015-5-17 23:30:46
17#
才刚刚学到继承,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马