为了账号安全,请及时绑定邮箱和手机立即绑定

父类中的构造方法是有参的,子类在调用时会出错怎么办???

父类中的构造方法是有参的,子类在调用时会出错怎么办???

爱编程的男孩 2016-07-13 19:10:05
package com.imooc; public class zilei extends hello {  {   super.hello();   System.out.println("成功了");  } }
查看完整描述

5 回答

?
乔帮主

TA贡献184条经验 获得超67个赞

既然有参,你在调用的时候就应该讲对应的参数传递过去啊!不然就会报错呗!你在调用父类构造方法的时候,将参数加上去试试呗!

查看完整回答
6 反对 回复 2016-07-13
已采纳
?
XhstormR

TA贡献140条经验 获得超197个赞

父类:

class Test2 {
    Test2(int num) {
        System.out.println("有参构造方法");
    }
}

子类:

class Test1 extends Test2 {
    Test1(int num) {
        super(num);
        System.out.println("成功了");
    }
}

多的就不说了,这你应该看的懂,望采纳。

查看完整回答
1 反对 回复 2016-07-14
?
BeingTowards

TA贡献2条经验 获得超2个赞

你创建一个父类的话  如果没有显式的创建构造方法不管有参还是无参的  则编译器会为该类创建一个隐式的无参的构造方法    如果你创建了一个带参的构造方法  则编译器就不会为该类创建一个隐式的无参构造方法  此时就需要你显式的创建一个无参的构造方法  一般父类都需要显式的创建无参构造方法  用于子类初始化对象调用。

查看完整回答
反对 回复 2016-07-14
?
_小_七_

TA贡献29条经验 获得超13个赞


这涉及到继承问题 你可以重构方法 或者覆盖

查看完整回答
反对 回复 2016-07-13
?
yanrun

TA贡献317条经验 获得超240个赞

把父类的代码和报错信息贴出来, 如果你要调用父类的构造方法也不是这么调用。

public zilei() {
    super();
}


查看完整回答
反对 回复 2016-07-13
  • 爱编程的男孩
    爱编程的男孩
    我重新弄了一下,发现必须子类和父类的参数列表必须相同,当父类是有参构造方法时,子类必须要写super(参数列表);才可以对吗?
  • yanrun
    yanrun
    对的,如果父类中没有无参的构造方法,而在子类中调用super()就相当于调用了一个没有定义的方法,会报错
  • 5 回答
  • 0 关注
  • 2640 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信