Phi*_*eil 2 java methods inheritance constructor
所以我有一个名为User的java类,它包含一个像这样的构造函数:
public class User extends Visitor {
public User(String UName, String Ufname){
setName(UName);
setFname(Ufname);
}
}
Run Code Online (Sandbox Code Playgroud)
然后他的问题出现在我的另一个名为Admin的类中:
public class Admin extends User { //error "Implicit super constructor User() is undefined for default constructor. Must define an explicit constructor"
//public Admin() { } //tried to add empty constructor but error stays there
//}
public void manage_items() {
throw new UnsupportedOperationException();
}
public void manage_users() {
throw new UnsupportedOperationException();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到的错误Implicit super constructor User() is undefined for default constructor. Must define an explicit constructor at the place marked in the code.我不知道如何解决这个问题,而且我是java的新手.
如果不向类添加构造函数,则会自动为您添加一个构造函数.对于Admin类,它将如下所示:
public Admin() {
super();
}
Run Code Online (Sandbox Code Playgroud)
调用super()在父User类中调用以下构造函数:
public User() {
super();
}
Run Code Online (Sandbox Code Playgroud)
由于此构造函数不存在,您将收到错误消息.
有关默认构造函数的更多信息,请参见此处:http: //docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
您不必为您的类提供任何构造函数,但在执行此操作时必须小心.编译器自动为没有构造函数的任何类提供无参数的默认构造函数.此默认构造函数将调用超类的无参数构造函数.在这种情况下,如果超类没有无参数构造函数,编译器将会抱怨,因此您必须验证它是否存在.如果你的类没有显式的超类,那么它有一个隐式的超类Object,它有一个无参数的构造函数.*