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

Phi*_*yer 12 java constructor super

我一直收到一个错误,说"调用super必须是构造函数中的第一个语句".

问题是它我构造函数中的第一个语句.

public void CheckingAccountCustomer(int a){
    super(n, p, b);
    accountNo = a;
}
Run Code Online (Sandbox Code Playgroud)

这里也是我的超类.

public void customer(String n, int p, double b){
    name = n;
    pin = p;
    balance = b;
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

rge*_*man 33

这段代码

public void customer(String n, int p, double b){
Run Code Online (Sandbox Code Playgroud)

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

public customer(String n, int p, double b){
Run Code Online (Sandbox Code Playgroud)

这也适用CheckingAccountCustomer.

  • 请注意,虽然“customer”(带有小写的 C)是一个有效的类名,但人们不赞成使用它。按照约定,类名必须以大写字母(“Customer”)开头,而方法名称以小写字母开头。 (2认同)

Hov*_*els 8

public void CheckingAccountCustomer(int a){
Run Code Online (Sandbox Code Playgroud)

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

public CheckingAccountCustomer(int a){
Run Code Online (Sandbox Code Playgroud)

  • 如果您只是将措辞更改为"您称之为构造函数?我是构造函数!",我将对您给出的每个答案进行投票. (6认同)