implicite super constructeur Personne() n'est pas défini. Faut appeler explicitement un autre constructeur?
Je suis en train de travailler sur un projet et j'obtiens l'erreur "implicite super constructeur Personne() n'est pas défini. Faut appeler explicitement un autre constructeur" et je n'ai pas tout à fait le comprendre.
Voici ma classe personne:
public class Person {
public Person(String name, double DOB){
}
}
Et mon élève de la classe en essayant de mettre en œuvre la classe personne, et de lui donner un instructeur variable.
public class Student extends Person {
public Student(String Instructor) {
}
}
essayez
Comment l'élève sache ce que son nom et date de naissance si vous n'appelez pas approprié super constructeur
super("Name", dob);
dans public Student(String instructor)
première ligneComment l'élève sache ce que son nom et date de naissance si vous n'appelez pas approprié super constructeur
OriginalL'auteur sirnomnomz | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
Référence: http://docs.oracle.com/javase/tutorial/java/IandI/super.html :
(Voir dans la section 'la sous-classe des Constructeurs)
Donc, chaque fois que de traiter avec les constructeurs paramétrés faire un
super(parameter1, parameter2 ..)
appeler le constructeur parent.Aussi cet appel super() devrait être la PREMIÈRE ligne de votre constructeur de bloc.
OriginalL'auteur pxm
Vous avez besoin de faire un
super
appel à votre défini constructeur:Vous ne pouvez pas simplement appeler
super()
parce que le constructeur n'est pas défini.OriginalL'auteur Rogue
C'est comment je l'ai réalisé (dans mon cas, la super-classe était de l'Équipe et de la sous-classe Buteur):
OriginalL'auteur Jaime Montoya
Lors de la création d'une sous-classe de constructeur, si vous n'avez pas explicitement appeler un constructeur de la superclasse avec
super
, puis Java va insérer un appel implicite à la non-arg "par défaut" constructeur de la superclasse, c'est à diresuper();
.Cependant, votre super-classe
Person
n'a pas un no-arg constructeur. Fournir explicite de non-arg constructeur dansPerson
ou appeler explicitement l'existant constructeur de la superclasse dans leStudent
constructeur.OriginalL'auteur rgettman
vous ne pouvez pas créer une instance sans faire appel à un constructeur de sa super-classe. Et la jvm ne sais pas comment appeler Personne(String, double) à partir de vos Étudiant(String) constructeur.
OriginalL'auteur EasterBunnyBugSmasher