2017-10-06 1 views
1

Je me demandais si quelqu'un pouvait m'aider avec un problème que je rencontre en essayant de prolonger une classe. Je veux être en mesure d'ajouter un prénom et un nom qui fait partie de ma classe de base à une classe étendue.Essayer d'étendre une classe en Java et de rencontrer des problèmes

Voici un extrait de ma classe de base Person.java

public class Person 
{ 
    private String firstName = ""; 
    private String lastName = ""; 
    private String id = ""; 


    public Person() 
    { 

    } 

    public Person(String firstName, String lastName, String id) 
    { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.id = id; 
    } 

Et voici la classe où je suis en train d'étendre la classe de base:

public TeamMember(String firstName, String lastName, String team, String id, String role) 
    { 
     super(firstName, lastName); 
     this.team = team; 
     this.id = id; 
     this.role = role; 
    } 

L'erreur que je reçois est: Erreur: (25, 9) java: constructeur Personne dans la classe xxx.xxxx.xxx.xx ne peut pas être appliquée à des types donnés; requis: aucun argument trouvé: java.lang.String, java.lang.String raison: listes d'arguments réels et formels diffèrent en longueur

Répondre

0

je devais créer un constructeur qui correspondait à ce qui était dans le super() dans la classe étendue dans la classe de base.

C'est ce que j'ai ajouté à la classe de base pour le faire fonctionner.

public Person(String firstName, String lastName) 
    { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 
0

Essayez ceci.

public TeamMember(String firstName, String lastName, String team, String id, String role) 
{ 
    super(firstName, lastName, id); 
    this.team = team; 
    this.role = role; 
} 

Id est une propriété privée de la classe de base, donc ne peut pas être accédé dans la classe dérivée.

private String id = "";