Plusieurs remarques ...
public abstract DetailRayon(String rayon, int chiffreAffaires)
un constructeur, en abstract ? ? ? Bizarre, je trouve !
public class Magasin extends DetailRayon
Je ne vois pas trop en quoi un magasin est un "DetailRayon" ... Le concept d'héritage permet de personnaliser une classe, je ne vois pas trop bien en quoi le type "Magasin" personnalise le type "DetailRayon"... Maintenant, il faut un peu voir au sein de tout le projet, mais ... A réfléchir, quoi !
Dans le constructeur de la classe Magasin, tu fais appel au constructeur de la classe mère par : or, dans la classe mère, le seul constructeur contient 2 paramètres, ton appel doit donc être muni des 2 paramètres :
super(rayon, chiffreAffaires);
Enfin, je ne vois pas trop ce que fait la méthode main dans ta classe Magasin. Ce n'est pas une faute, d'un point de vue compilation, mais je ne pense pas que ça soit une bonne manière de faire. Il vaut mieux écrire une classe Appli qui contient cette méthode, c'est plus propre !
Encore une chose, une bonne habitude à prendre est de déclarer private les champs : Voici ce que je te propose, qui compile :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class DetailRayon
{
private String rayon;
private int chiffreAffaires;
public DetailRayon(String rayon, int chiffreAffaires)
{
this.rayon = rayon;
this.chiffreAffaires = chiffreAffaires;
}
public void afficher()
{
System.out.println("Bienvenue dans le rayon " + rayon + " , chiffre d'affaires" + chiffreAffaires + " Euros");
}
} |
1 2 3 4 5 6 7 8 9
| public class Magasin extends DetailRayon
{
private String nomMagasin;
public Magasin(String rayon, int chiffreAffaires, String nomMagasin)
{
super(rayon, chiffreAffaires);
this.nomMagasin = nomMagasin;
}
} |
et enfin :
1 2 3 4 5 6 7 8
| public class Appli
{
public static void main(String args[])
{
Magasin monMag = new Magasin("Ménage", 80, "MonMag");
monMag.afficher();
}
} |
Tu mets les 3 classes dans le même répertoire, et ça doit être bon...
N'hésite pas à demander s'il y a un problème...
Partager