Java中的继承错误
我正在试用java中的Java中的继承错误,java,eclipse,extends,Java,Eclipse,Extends,我正在试用java中的extends关键字,如下所示: 帐户类别: public class Account { public Account(...) { //Code... } } public class GameAccount extends Account { public GameAccount(...) { //Code... } } 游戏帐户类别: public class Account {
extends
关键字,如下所示:
帐户类别:
public class Account {
public Account(...) {
//Code...
}
}
public class GameAccount extends Account {
public GameAccount(...) {
//Code...
}
}
游戏帐户类别:
public class Account {
public Account(...) {
//Code...
}
}
public class GameAccount extends Account {
public GameAccount(...) {
//Code...
}
}
但在Eclipse上,我得到了一个看起来很糟糕的错误,它说:
隐式超级构造函数帐户()未定义。必须显式调用另一个构造函数
如何解决此问题?您应该从
GameAccount
的构造函数的第一行调用Account
的构造函数。
如果不这样做,它会尝试调用默认(无参数)构造函数,如果它不存在,则会出现此编译错误
public class GameAccount extends Account {
public GameAccount(...) {
super (...);
...
}
}
另一种方法是定义一个构造函数,该构造函数在帐户中不接受任何参数:
public class Account {
public Account() {
//Code...
}
public Account(...) {
//Code...
}
}
这将解决您的问题:
public class GameAccount extends Account {
public GameAccount(...) {
super(...parameters that Account expects...);
//Code...
}
}
在GameCount的构造函数中引用新帐户(…)您必须在子类的构造函数中调用超类构造函数作为第一次调用:
public GameAccount(String game, int balance) {
super(balance);
// Other stuff
}
它只是不知道如何构造GameAccount
对象的Account
部分。或者,换句话说,当您创建GameCount时,您需要(作为GameCount构造函数的第一部分)调用其中一个帐户构造函数。问题是,编译器不知道使用哪个构造函数,也不知道它使用的构造函数的参数应该是什么。因此,编译器抱怨道。