黑马程序员技术交流社区

标题: 继承中如何在父类没有无参构造的方法的时候创建对象 [打印本页]

作者: qetu001212    时间: 2016-7-22 22:35
标题: 继承中如何在父类没有无参构造的方法的时候创建对象
1.在子类没有无参构造时,可以用有参构造创建,在有参构造的方法体中使用语句super(参数1,参数2,...);2.在子类有无参构造时,可以利用this关键字,用this关键字指向子类的有参构造,再由有参构造传递给父类的有参构造,语句this(值1,值2,...);必须传递确切的值
3.在子类有无参构造时,也可以利用super关键字,此时需要传递确切的值,语句super(值1,值2,...);


总结:建议使用第一个方法,最简单,指向明确,容易理解,并且不需要传递准确的值,初始化一步到位,而第二三种方式需要使用setXxx()方法进行初始化。


作者: yin12310    时间: 2016-7-23 00:06
只想默默的问一句你如何确定父类有没有无参构造?
作者: qetu001212    时间: 2016-7-23 23:26
yin12310 发表于 2016-7-23 00:06
只想默默的问一句你如何确定父类有没有无参构造?

假如父类重载了构造方法,写的是有参构造,你自己不给出无参构造的话,它当然就没有了,系统不会在你给出构造方法时再添加构造方法。。。
作者: elopment    时间: 2016-7-23 23:50
子类无参的话呢
作者: qetu001212    时间: 2016-7-23 23:51
elopment 发表于 2016-7-23 23:50
子类无参的话呢

2.在子类有无参构造时,可以利用this关键字,用this关键字指向子类的有参构造,再由有参构造传递给父类的有参构造,语句this(值1,值2,...);必须传递确切的值
3.在子类有无参构造时,也可以利用super关键字,此时需要传递确切的值,语句super(值1,值2,...);




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