Implicit super constructor BankAccount() is undefined. Must explicitly invoke another constructor
时间: 2024-05-11 14:19:24 浏览: 6
这个错误通常出现在你的类继承了另一个类,而在子类的构造函数中没有显式地调用父类的构造函数。你需要在子类的构造函数中使用 `super()` 调用父类的构造函数,或者使用 `super(args)` 调用父类的带参构造函数(如果有的话)。
例如,如果你的子类是 `SavingsAccount`,它继承自父类 `BankAccount`,你的代码可能是这样的:
```
public class SavingsAccount extends BankAccount {
public SavingsAccount() {
// 缺少调用父类构造函数的代码
}
}
```
你需要使用 `super()` 调用父类的无参构造函数,或者使用 `super(args)` 调用父类的带参构造函数(如果有的话),例如:
```
public class SavingsAccount extends BankAccount {
public SavingsAccount(double balance) {
super(balance); // 调用父类的带参构造函数
}
}
```
在这个例子中,我们使用 `super(balance)` 调用了父类的带参构造函数,而不是使用 `super()` 调用父类的无参构造函数。这样就可以解决这个错误了。
相关问题
Implicit super constructor A() is undefined. Must explicitly invoke another constructor
这个错误通常是因为你定义了一个类,并且没有明确调用父类的构造函数。当你没有定义任何构造函数时,Java会自动生成一个默认的无参构造函数,该构造函数调用了父类的默认构造函数。但是,如果你定义了一个构造函数,Java就不会再自动生成这个默认构造函数了,这时候你需要手动调用父类的构造函数。
要解决这个问题,你可以在子类的构造函数中使用 `super()` 显式地调用父类的构造函数。例如,如果父类的构造函数需要传递一个参数,你可以这样写:
```
public class A {
public A(int arg) {
// 父类的构造函数
}
}
public class B extends A {
public B(int arg) {
super(arg); // 显式地调用父类的构造函数
// 子类的构造函数
}
}
```
注意,如果父类没有默认的无参构造函数,你必须在子类的构造函数中显式地调用一个父类的构造函数。
Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
这个错误通常出现在您没有为您的自定义类显式定义构造函数时。如果您没有为您的类定义构造函数,Java会默认提供一个无参构造函数,但是如果您在您的类中定义了任何构造函数,Java将不再提供默认的无参构造函数。
要解决这个错误,您可以通过显式定义一个无参构造函数来创建一个默认构造函数。例如:
```
public class MyClass {
public MyClass() {
// 构造函数体
}
}
```
或者,如果您需要接受参数的构造函数,您可以创建一个带有参数的构造函数,并在其中调用super()方法来调用父类的构造函数。例如:
```
public class MyClass {
public MyClass(int parameter) {
super();
// 构造函数体
}
}
```
在这个例子中,我们调用了父类的无参构造函数,但是您也可以调用父类的带参数的构造函数。