Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的继承错误_Java_Eclipse_Extends - Fatal编程技术网

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 {

我正在试用java中的
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构造函数的第一部分)调用其中一个帐户构造函数。问题是,编译器不知道使用哪个构造函数,也不知道它使用的构造函数的参数应该是什么。因此,编译器抱怨道。