Bonjour à toutes et à tous,

j'ai un problème avec le pattern decorator :
Avec le code qui suit je me retrouve avec le message suivant à la compilation : "error: CoucheChocolat is not abstract and does not override abstract method preparer() in Patisserie
public class CoucheChocolat extends Couche{"

Voici le code :
d'abord une classe abstraite "Patisserie" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public abstract class Patisserie {
    public abstract String preparer();    
}
Une classe "Gateau" qui étend la classe "Patisserie" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class Gateau extends Patisserie{
    public String preparer(){
        return "Je suis un gâteau et je suis constitué des éléments" + " suivants :\n";
    }    
}
Une classe "Couche" qui étend aussi la classe abstraite "Patisserie"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public abstract class Couche extends Patisserie  {
    protected Patisserie pat;
    protected String nom;
 
    public Couche(Patisserie p) {
        pat = p;
                }
 
    public String Preparer(){
        String str = pat.preparer();
        return str + nom;       
    }
}
Puis une classe "CoucheChocolat" qui étend la classe "Couche" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class CoucheChocolat extends Couche{
    public CoucheChocolat(Patisserie p) {
        super(p);
        this.nom = "\t- Une couche de chocolat.\n";
    }
}
Enfin , le code "main"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public class PatternDecorator {
 
    public static void main(String[] args) {
       Patisserie pat = new CoucheChocolat(
                         //   new CoucheCaramel(
                            //    new CoucheBiscuit(
                               //     new CoucheChocolat(
                                        new Gateau());
       System.out.println(pat.preparer());
    }    
}
Remarque : pour simplifier j'ai supprimer les classes CoucheCaramel et CoucheBiscuit.

Donc l'erreur à la compilation est la suivante :
"error: CoucheChocolat is not abstract and does not override abstract method preparer() in Patisserie
public class CoucheChocolat extends Couche{"

Je ne comprends pas cette erreur, alors par avance merci pour votre aide !!