Erreur super

Résolu/Fermé
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 - 24 déc. 2013 à 12:51
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 - 30 déc. 2013 à 18:46
Bonjour,

je suis en train de réaliser un projet java j'ai utiliser la notion d'héritage dont la quelle la classe chef projet hérite de la classe ingénieur ,j'ai fait la classe cheprojet dans une classe et ingénieur dans une autre classe qui hérite de la classe Employe ,mais j'ai un erreur au niveau de supper de la classe chefprojet et voila mon travaille :
package Emp;

public class Employe {
private String nom;
private String prenom;
private String adresse;
private String mail;
private int num_tel;
private int cin;
private double salaire;


public Employe(String n,String p,String adr,String m,int cn,int tel,double sal)
{
nom=n;
prenom=p;
adresse=adr;
mail=m;
num_tel=tel;
cin=cn;
salaire=sal;


}
public String getNom()
{return nom;}
public void setNom(String n)
{nom=n;}
public String getprenom()
{return prenom;}
public void setprenom(String p)
{prenom=p;}
public String getadresse()
{return adresse;}
public void setadresse(String adr)
{adresse=adr;}

public String toString()
{return ("nom:"+nom+" prenom:"+prenom+" adresse"+adresse+"mail"+mail+"numtel"+num_tel+"cin"+cin+"salaire"+salaire);}



}
--------------------------------------------------------------------
package Emp;


public class ingenieur {

public class Ingenieur extends Employe
{
private String grade;
public String getGrade()
{
return grade;
}
public Ingenieur(String n,String p,String adr,String m,int tel,int cn,double sal,String g)
{
super(n,p,adr,m,tel,cn,sal);
grade=g;
}


}
-----------------------------------
package Emp;

public class chefprojet {
public class Chefprojet extends ingenieur
{
private int nbrprojet;
public int getNbchantier()
{
return nbrprojet;
}
public Chefprojet(String n,String p,String adr,String m,int tel,int cn,double sal,String g,int nbrp)
{
super(n,p,adr,m,tel,cn,sal,g);
nbrprojet=nbrp;
}


}


}



}
Merci pour ceux qui vont m'aidez ;)

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 déc. 2013 à 14:10
Tu as un problème dans la manière de déclarer tes classes filles.

Normalement on devrait faire :

public class Fille extends Mere {

Et je ne sais pas pourquoi, toi tu fais des classes imbriquées !

public class fille {
    public class Fille extends Mere {

Du coup effectivement tu as un problème parce que la classe
Chefprojet
hérite de la classe
ingenieur
(avec un i minuscule) alors que le constructeur que tu utilises avec
super
est celui de la classe
Ingenieur
(avec un I majuscule).

Tu pourrais t'en sortir simplement en mettant
Chefprojet extends Ingenieur
mais je te conseilles fortement de totalement supprimer les classes
ingenieur
et
chefprojet
pour ne garder que
Employe
,
Ingenieur
et
Chefprojet
.
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 6
30 déc. 2013 à 10:53
salut ,merci pour la réponse ,en fait j'ai fait au début comme tu m'as dit mais ça ma donnée des erreurs pour cela j'ai ajoute public class ingenieur (class fille) avec majuscule et minuscule car si je les faire la même j'eu des erreurs .
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
30 déc. 2013 à 18:20
Peut être que ça ne corrige pas totalement ton programme mais pour le problème spécifique du super la cause c'est l'imbrication de tes classes ingenieur.Ingenieur et chefprojet.Chefprojet donc la résolution de ton problème passe par la suppression de ingenieur et chefprojet
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 6
30 déc. 2013 à 18:25
Si je supprime l'imbrication l'erreur devient au niveau du nom de la class et au supper ,j'ai essayé de supprimer l'imbrication mais ça n'a résolu pas l'erreur de supper, ça peut etre un erreur de la class mère ?
0
touta_touta Messages postés 337 Date d'inscription mercredi 7 août 2013 Statut Membre Dernière intervention 8 avril 2016 6
30 déc. 2013 à 18:41
j'ai supprimé l'imbrication et aussi le mot public ,l'erreur devient seulement au niveau de supper
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
30 déc. 2013 à 18:42
Si je reprends ton code, j'enlèves juste l'imbrication des classes pour supprimer ingenieur et chefprojet, j'obtiens le code suivant, et il compile sans problème.

package Emp;

public class Employe
{
    private String nom;
    private String prenom;
    private String adresse;
    private String mail;
    private int num_tel;
    private int cin;
    private double salaire;
    
    public Employe(String n, String p, String adr, String m, int cn, int tel, double sal)
    {
        nom = n;
        prenom = p;
        adresse = adr;
        mail = m;
        num_tel = tel;
        cin = cn;
        salaire = sal;
        
    }
    
    public String getNom()
    {
        return nom;
    }
    
    public void setNom(String n)
    {
        nom = n;
    }
    
    public String getprenom()
    {
        return prenom;
    }
    
    public void setprenom(String p)
    {
        prenom = p;
    }
    
    public String getadresse()
    {
        return adresse;
    }
    
    public void setadresse(String adr)
    {
        adresse = adr;
    }
    
    public String toString()
    {
        return ("nom:" + nom + " prenom:" + prenom + " adresse" + adresse + "mail" + mail + "numtel" + num_tel + "cin" + cin + "salaire" + salaire);
    }
}

package Emp;

public class Ingenieur extends Employe
{
    private String grade;
    
    public String getGrade()
    {
        return grade;
    }
    
    public Ingenieur(String n, String p, String adr, String m, int tel, int cn, double sal, String g)
    {
        super(n, p, adr, m, tel, cn, sal);
        grade = g;
    }
}

package Emp;

public class Chefprojet extends Ingenieur
{
    private int nbrprojet;
    
    public int getNbchantier()
    {
        return nbrprojet;
    }
    
    public Chefprojet(String n, String p, String adr, String m, int tel, int cn, double sal, String g, int nbrp)
    {
        super(n, p, adr, m, tel, cn, sal, g);
        nbrprojet = nbrp;
    }
}
0