调用super必须是构造函数中的第一个语句,但它是

我不断收到一条错误,说“调用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; } 

我在这做错了什么?

这段代码

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

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

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

这也适用于CheckingAccountCustomer

 public void CheckingAccountCustomer(int a){ 

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

 public CheckingAccountCustomer(int a){ 
 public void CheckingAccountCustomer(int a) 

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

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

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

构造函数永远不会返回某些内容(void或Object类型)。

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

因此不是构造函数。