16

我不断收到一条错误消息,说“对 super 的调用必须是构造函数中的第一条语句”。

问题是它我的构造函数中的第一条语句。

public void CheckingAccountCustomer(int a){
    super(n, p, b);
    accountNo = a;
}

这也是我的超类。

public void customer(String n, int p, double b){
    name = n;
    pin = p;
    balance = b;
}

我在这里做错了什么?

4

5 回答 5

36

这段代码

public void customer(String n, int p, double b){

不是构造函数。构造函数没有返回类型,例如void. 假设您的班级名称是customer

public customer(String n, int p, double b){

这也适用于CheckingAccountCustomer

于 2013-05-06T21:20:02.377 回答
8
public void CheckingAccountCustomer(int a){

这不是构造函数,因为它声明它具有void返回类型。它只是一个与类同名的方法。摆脱返回类型。

public CheckingAccountCustomer(int a){
于 2013-05-06T21:19:48.767 回答
3
public void CheckingAccountCustomer(int a)

这是一个方法而不是构造函数,因为它有一个返回类型。

于 2013-05-06T21:21:31.887 回答
2

构造函数用于创建该 Class 的实例因此如果它允许用户更改返回类型是没有意义的(这也可能很危险)。这就是构造函数没有返回类型的原因。

正如其他人已经回答的那样,删除返回类型,它将成为构造函数。

于 2013-05-06T21:25:32.037 回答
2

构造函数从不返回某些东西(void 或 Object 类型)。

public void CheckingAccountCustomer(int a){
    super(n, p, b);
    accountNo = a;
}

因此不是构造函数。

于 2013-05-06T21:29:52.373 回答