黑马程序员技术交流社区

标题: 父类构造方法访问 [打印本页]

作者: Hison_lian    时间: 2015-5-15 21:12
标题: 父类构造方法访问
假如父类中有有参构造方法,没有无参构造方法怎么通过子类中的构造方法访问父类的构造方法
作者: 奋斗的小琴年    时间: 2015-5-15 21:14
如果这个类中有个有参的构造函数,没有无参的构造函数的话就不能调用无参的构造函数,通常我们都会添加一个无参的构造函数
作者: youngzk    时间: 2015-5-15 21:18
new 对象
作者: 陈明佳    时间: 2015-5-15 21:27
用多态。
作者: dangdangj    时间: 2015-5-15 21:53
父类中一般会添加无参的构造方法,子类的构造方法中通过super指定调用父类的哪个构造方法,在实例化子类对象时,会自动调用父类无参的构造方法。
作者: 黄冬    时间: 2015-5-15 22:11

如果父类没有无参构造,子类的构造方法默认调用父类的无参构造,在编译时就会报错。
这时候有两个办法:1、子类的构造方法中调用父类的有参构造,super(name);
                               2、子类的无参构造调用本类的其他构造,this(...);

作者: 雪风飞花    时间: 2015-5-15 22:12
来学习楼上详细解释
作者: yinping    时间: 2015-5-15 22:15
好像用super调用
作者: 我干阿衰    时间: 2015-5-15 22:40
子类用super调用父类有参就好了啊
作者: 魔蝎座    时间: 2015-5-15 23:00
通过super关键字来访问。无参就是super();
作者: shao122791159    时间: 2015-5-15 23:55
用super关键字
作者: 想要那片海    时间: 2015-5-16 08:53
黄冬 发表于 2015-5-15 22:11
如果父类没有无参构造,子类的构造方法默认调用父类的无参构造,在编译时就会报错。
这时候有两个办法:1 ...

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

2可以调用父类的构造函数吗??
作者: 黄冬    时间: 2015-5-17 23:06
懒儿想想 发表于 2015-5-16 22:47
2可以调用父类的构造函数吗??

那就是调用父类的有参构造了,这样就是解决方法1了。
其实,如果子类中有多个构造方法的话,最终必须要有一个去super()调用父类的构造的
作者: 懒儿想想    时间: 2015-5-17 23:25
哦哦,最后还是用super(),我理解错误了
作者: 夜愿Relax    时间: 2015-5-17 23:30
才刚刚学到继承,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2