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" :
Une classe "Gateau" qui étend la classe "Patisserie" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public abstract class Patisserie { public abstract String preparer(); }
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 public class Gateau extends Patisserie{ public String preparer(){ return "Je suis un gâteau et je suis constitué des éléments" + " suivants :\n"; } }
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
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; } }
Enfin , le code "main"
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"; } }
Remarque : pour simplifier j'ai supprimer les classes CoucheCaramel et CoucheBiscuit.
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()); } }
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 !!
Partager