我一直收到一条错误,说“调用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;
}
我在这里做错了什么?
答案 0 :(得分:32)
此代码
public void customer(String n, int p, double b){
不是构造函数。构造函数没有返回类型,例如void
。假设您的班级名称是customer
:
public customer(String n, int p, double b){
这也适用于CheckingAccountCustomer
。
答案 1 :(得分:8)
public void CheckingAccountCustomer(int a){
这不是构造函数,因为它声明它具有void
返回类型。它只是一个与类同名的方法。摆脱返回类型。
public CheckingAccountCustomer(int a){
答案 2 :(得分:3)
public void CheckingAccountCustomer(int a)
这是一种方法而不是构造函数,因为它具有返回类型。
答案 3 :(得分:2)
构造函数用于创建该类的实例,因此它是否会让用户更改返回类型是没有意义的(它可能是危险的太)。这就是构造函数具有无返回类型的原因。
正如其他人已经回答的那样,删除返回类型,它将成为构造函数。
答案 4 :(得分:2)
构造函数永远不会返回某些内容(void或Object类型)。
public void CheckingAccountCustomer(int a){
super(n, p, b);
accountNo = a;
}
因此不是构造函数。