diff --git a/Sitbon-Benjamin-Lab3-Task1/Client.java b/Sitbon-Benjamin-Lab3-Task1/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3c2be62de50fb4bab9367bc76b0950d677a7e98
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Client.java
@@ -0,0 +1,18 @@
+import java.util.Scanner;
+
+public class Client {
+
+    public static void main(String[] args) {
+
+       
+        Menu test = new MenuVapeur();
+        test.addAll(new Vapeur(), new Vapeur(), new Vapeur());
+
+        //N'est pas censé fonctionner car on ne peut par mettre un potage dans un menu vapeur
+        test.add(new Potage());
+        
+
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Cuisson.java b/Sitbon-Benjamin-Lab3-Task1/Cuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..e99522c68f0dac442678ef07b6d3818fdeb37c08
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Cuisson.java
@@ -0,0 +1,3 @@
+public class Cuisson extends Legume {
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Legume.java b/Sitbon-Benjamin-Lab3-Task1/Legume.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2a32f7e0d8490371b41a2712f9a23c0557af45f
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Legume.java
@@ -0,0 +1,4 @@
+public abstract class Legume {
+
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Menu.java b/Sitbon-Benjamin-Lab3-Task1/Menu.java
new file mode 100644
index 0000000000000000000000000000000000000000..c28e39c1c51fd68b218d08532f9406a0b66d3175
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Menu.java
@@ -0,0 +1,10 @@
+import java.util.ArrayList;
+
+public abstract class Menu {
+
+    ArrayList<Legume> menu = new ArrayList<>();
+
+    public abstract void add(Legume l);
+    public abstract void addAll(Legume... legumes);
+    public abstract Legume get(int index);
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/MenuCuisson.java b/Sitbon-Benjamin-Lab3-Task1/MenuCuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..35641a70db5e6d0832e77b913302a71af09c4307
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/MenuCuisson.java
@@ -0,0 +1,17 @@
+public class MenuCuisson extends Menu {
+    
+    public void add(Legume l){
+        Cuisson cuiss = (Cuisson) l;
+        this.menu.add(cuiss);
+    }
+
+
+    public void addAll(Legume... legumes){
+        for(Legume l: legumes){
+            this.menu.add(l);
+        }
+    }
+    public Legume get(int index){
+        return this.menu.get(index);
+    }
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/MenuPotage.java b/Sitbon-Benjamin-Lab3-Task1/MenuPotage.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae5a8bd54d710f5764c777dea9899c0111070ec9
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/MenuPotage.java
@@ -0,0 +1,21 @@
+
+
+public class MenuPotage extends Menu {
+
+
+    public void add(Legume l){
+        Potage pot = (Potage) l;
+        this.menu.add(pot);
+    }
+
+
+    public void addAll(Legume... legumes){
+        for(Legume l: legumes){
+            this.menu.add(l);
+        }
+    }
+    public Legume get(int index){
+        return this.menu.get(index);
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/MenuSalades.java b/Sitbon-Benjamin-Lab3-Task1/MenuSalades.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d07969d36cab9f97c40fbb96d707d0770b1fc0b
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/MenuSalades.java
@@ -0,0 +1,22 @@
+
+
+public class MenuSalades extends Menu {
+
+    
+
+    public void add(Legume l){
+        Salades sal = (Salades) l;
+        this.menu.add(sal);
+    }
+
+
+    public void addAll(Legume... legumes){
+        for(Legume l: legumes){
+            this.menu.add(l);
+        }
+    }
+    public Legume get(int index){
+        return this.menu.get(index);
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/MenuVapeur.java b/Sitbon-Benjamin-Lab3-Task1/MenuVapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..3d4eb2229d6943dc21284ca22b4dba4bdb400602
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/MenuVapeur.java
@@ -0,0 +1,21 @@
+
+
+public class MenuVapeur extends Menu {
+
+
+    public void add(Legume l){
+        Vapeur vap = (Vapeur) l;
+        this.menu.add(vap);
+    }
+
+
+    public void addAll(Legume... legumes){
+        for(Legume l: legumes){
+            this.menu.add(l);
+        }
+    }
+    public Legume get(int index){
+        return this.menu.get(index);
+    }
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Potage.java b/Sitbon-Benjamin-Lab3-Task1/Potage.java
new file mode 100644
index 0000000000000000000000000000000000000000..f2fff4aa88fdbd5ec23a878ba0b159935768d32e
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Potage.java
@@ -0,0 +1,3 @@
+public class Potage extends Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Salades.java b/Sitbon-Benjamin-Lab3-Task1/Salades.java
new file mode 100644
index 0000000000000000000000000000000000000000..feb9727af253356cb8d9d7f364ed55e8d01b5aa8
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Salades.java
@@ -0,0 +1,3 @@
+public class Salades extends Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task1/Vapeur.java b/Sitbon-Benjamin-Lab3-Task1/Vapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..827233a107c85c030504d27ce260c8081c3b6d70
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task1/Vapeur.java
@@ -0,0 +1,3 @@
+public class Vapeur extends Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Client.class b/Sitbon-Benjamin-Lab3-Task2/Client.class
new file mode 100644
index 0000000000000000000000000000000000000000..72ccc1cc7f214610bab034353dd2838fd4c89e28
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Client.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Client.java b/Sitbon-Benjamin-Lab3-Task2/Client.java
new file mode 100644
index 0000000000000000000000000000000000000000..c1b873a41eb7626ac2699c41eca4ae4fd6b8105b
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Client.java
@@ -0,0 +1,18 @@
+import java.util.Scanner;
+
+public class Client {
+
+    public static void main(String[] args) {
+
+       
+        Menu test = new MenuVapeur();
+        test.addAll(new HerbeVapeur(), new HuileVapeur(), new LegumeVapeur());
+
+        //N'est pas censé fonctionner car on ne peut par mettre un potage dans un menu vapeur
+        test.add(new HerbePotage());
+        
+
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Cuisson.class b/Sitbon-Benjamin-Lab3-Task2/Cuisson.class
new file mode 100644
index 0000000000000000000000000000000000000000..89cd77b9720f193c3d2133ca382920a0880fcf7e
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Cuisson.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Cuisson.java b/Sitbon-Benjamin-Lab3-Task2/Cuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..b0c9af3d239a468529c6f63d9fcaac2eead59bf1
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Cuisson.java
@@ -0,0 +1,3 @@
+public class Cuisson {
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Herbe.class b/Sitbon-Benjamin-Lab3-Task2/Herbe.class
new file mode 100644
index 0000000000000000000000000000000000000000..16bbf78d8a4b5d0611ec9dd6e244e25c5e1ed1c5
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Herbe.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Herbe.java b/Sitbon-Benjamin-Lab3-Task2/Herbe.java
new file mode 100644
index 0000000000000000000000000000000000000000..0da1ec00409991ae6fc741ec649797df51ec27d5
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Herbe.java
@@ -0,0 +1,3 @@
+public interface Herbe extends Ingredient {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.class b/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.class
new file mode 100644
index 0000000000000000000000000000000000000000..400c02dc19abfd648448e404c991e87ef6dacd6c
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.java b/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba24470f6f9e25c519769e921ee14dd570bdc03c
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HerbeCuisson.java
@@ -0,0 +1,3 @@
+public class HerbeCuisson implements Herbe {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbePotage.class b/Sitbon-Benjamin-Lab3-Task2/HerbePotage.class
new file mode 100644
index 0000000000000000000000000000000000000000..c97f5d201332e0a34c85d8bf8d05d0ac31a0eb4f
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HerbePotage.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbePotage.java b/Sitbon-Benjamin-Lab3-Task2/HerbePotage.java
new file mode 100644
index 0000000000000000000000000000000000000000..555d6689d1a75ad0ecb353c8035dfd8a2df9ee7c
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HerbePotage.java
@@ -0,0 +1,3 @@
+public class HerbePotage implements Herbe {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.class b/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.class
new file mode 100644
index 0000000000000000000000000000000000000000..d9edf5fa38a730b74174531b9bffe2896f93b302
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.java b/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.java
new file mode 100644
index 0000000000000000000000000000000000000000..40c5af91a40793d40af7e675d6397b209c44f359
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HerbeSalades.java
@@ -0,0 +1,3 @@
+public class HerbeSalades implements Herbe {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.class b/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.class
new file mode 100644
index 0000000000000000000000000000000000000000..27680a047123d4b2cfa51fd2e94a542f750e89a1
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.java b/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..d30280f4972c7fe0ef740b8ac86e9dd412dbebae
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HerbeVapeur.java
@@ -0,0 +1,3 @@
+public class HerbeVapeur implements Herbe {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Huile.class b/Sitbon-Benjamin-Lab3-Task2/Huile.class
new file mode 100644
index 0000000000000000000000000000000000000000..131c27074c3cfcbf1279e772f19a3fbf94f2aba5
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Huile.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Huile.java b/Sitbon-Benjamin-Lab3-Task2/Huile.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e9e4162385f5e595c4157da20509b80dea31a66
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Huile.java
@@ -0,0 +1,3 @@
+public interface Huile extends Ingredient {
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.class b/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.class
new file mode 100644
index 0000000000000000000000000000000000000000..1218f13c11a3995c42740b520fd56306affee44a
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.java b/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..1527bbd4b74ea518f9c0ec760c28bff813eff55a
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HuileCuisson.java
@@ -0,0 +1,3 @@
+public class HuileCuisson implements Huile {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuilePotage.class b/Sitbon-Benjamin-Lab3-Task2/HuilePotage.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc5e5d72a4e6e81ff712d9840f9ef65a25c46aeb
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HuilePotage.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuilePotage.java b/Sitbon-Benjamin-Lab3-Task2/HuilePotage.java
new file mode 100644
index 0000000000000000000000000000000000000000..883eed5c45c3c0a14597cb780cee6573553b6ae0
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HuilePotage.java
@@ -0,0 +1,3 @@
+public class HuilePotage implements Huile {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileSalades.class b/Sitbon-Benjamin-Lab3-Task2/HuileSalades.class
new file mode 100644
index 0000000000000000000000000000000000000000..b989cd2f1e00f72b6ad384fccacbc0bba43cfed9
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HuileSalades.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileSalades.java b/Sitbon-Benjamin-Lab3-Task2/HuileSalades.java
new file mode 100644
index 0000000000000000000000000000000000000000..229ad3b6c0199339216d5d1f24613a0f80b8b0b1
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HuileSalades.java
@@ -0,0 +1,3 @@
+public class HuileSalades implements Huile {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.class b/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.class
new file mode 100644
index 0000000000000000000000000000000000000000..f1f4370cba2619a8984c8b0c4ea62ae567552abf
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.java b/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..d5983a24ebef51d3ee2399fe8a933360d6117135
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/HuileVapeur.java
@@ -0,0 +1,3 @@
+public class HuileVapeur implements Huile {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Ingredient.class b/Sitbon-Benjamin-Lab3-Task2/Ingredient.class
new file mode 100644
index 0000000000000000000000000000000000000000..4d7afc9d7f8a7dd2de40f21fa2920c07b5c1304a
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Ingredient.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Ingredient.java b/Sitbon-Benjamin-Lab3-Task2/Ingredient.java
new file mode 100644
index 0000000000000000000000000000000000000000..f45c1179586e98263e13a9708206a562a0474e96
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Ingredient.java
@@ -0,0 +1,3 @@
+public interface Ingredient {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Legume.class b/Sitbon-Benjamin-Lab3-Task2/Legume.class
new file mode 100644
index 0000000000000000000000000000000000000000..7427939d23f09c42696dd99132a3400b1e0a0e24
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Legume.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Legume.java b/Sitbon-Benjamin-Lab3-Task2/Legume.java
new file mode 100644
index 0000000000000000000000000000000000000000..269e6a0bd5eab8e9e6862203b3804b5480182402
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Legume.java
@@ -0,0 +1,4 @@
+public interface Legume extends Ingredient {
+
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.class b/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.class
new file mode 100644
index 0000000000000000000000000000000000000000..650297df348af18ede05a82fe9e4f31beabd3b4e
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.java b/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcdec7b5b3e41409dea9e325b6315b7f4fc68412
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/LegumeCuisson.java
@@ -0,0 +1,3 @@
+public class LegumeCuisson implements Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumePotage.class b/Sitbon-Benjamin-Lab3-Task2/LegumePotage.class
new file mode 100644
index 0000000000000000000000000000000000000000..1f1e0eadf82ad4dd36465b932fe31790cf308286
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/LegumePotage.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumePotage.java b/Sitbon-Benjamin-Lab3-Task2/LegumePotage.java
new file mode 100644
index 0000000000000000000000000000000000000000..77640b442d8d33097636a9d90e6b40100475820f
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/LegumePotage.java
@@ -0,0 +1,3 @@
+public class LegumePotage implements Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.class b/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.class
new file mode 100644
index 0000000000000000000000000000000000000000..27b155e751ab28bd5f35ac4bd992896a6b7fbd1c
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.java b/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.java
new file mode 100644
index 0000000000000000000000000000000000000000..fad1e44b35fc736d4837ad091619df0524689155
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/LegumeSalades.java
@@ -0,0 +1,3 @@
+public class LegumeSalades implements Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.class b/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.class
new file mode 100644
index 0000000000000000000000000000000000000000..8aca3825f5a7e520284086928789121e58a52425
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.java b/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..738ff2301a6ab36caccf1dd2207c75ec15ff9662
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/LegumeVapeur.java
@@ -0,0 +1,3 @@
+public class LegumeVapeur implements Legume {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Menu.class b/Sitbon-Benjamin-Lab3-Task2/Menu.class
new file mode 100644
index 0000000000000000000000000000000000000000..5493cd0c42d5c9dda601e3d279fc979e982bd372
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Menu.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Menu.java b/Sitbon-Benjamin-Lab3-Task2/Menu.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2602775142b1e47cfd7be1e1598a2a68d846650
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Menu.java
@@ -0,0 +1,12 @@
+import java.util.ArrayList;
+
+public abstract class Menu {
+
+    ArrayList<Ingredient> menu = new ArrayList<>();
+
+    public abstract void add(Herbe he);
+    public abstract void add(Huile hu);
+    public abstract void add(Legume l);
+    public abstract void addAll(Ingredient... ingredients);
+    public abstract Ingredient get(int index);
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.class b/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.class
new file mode 100644
index 0000000000000000000000000000000000000000..433e3687f0e0fbe2902307d6cd24ebed76cb970c
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.java b/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.java
new file mode 100644
index 0000000000000000000000000000000000000000..d02bd069d1be1a5890c4d550a7fd35a43b75d359
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/MenuCuisson.java
@@ -0,0 +1,27 @@
+public class MenuCuisson extends Menu {
+    
+    public void add(Legume l){
+        LegumeCuisson cuiss = (LegumeCuisson) l;
+        this.menu.add(cuiss);
+    }
+
+    public void add(Herbe he){
+        HerbeCuisson cuiss = (HerbeCuisson) he;
+        this.menu.add(cuiss);
+    }
+
+    public void add(Huile hu){
+        HuileCuisson cuiss = (HuileCuisson) hu;
+        this.menu.add(cuiss);
+    }
+
+
+    public void addAll(Ingredient... ingredients){
+        for(Ingredient l: ingredients){
+            this.menu.add(l);
+        }
+    }
+    public Ingredient get(int index){
+        return this.menu.get(index);
+    }
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuPotage.class b/Sitbon-Benjamin-Lab3-Task2/MenuPotage.class
new file mode 100644
index 0000000000000000000000000000000000000000..59403b0a259f7637cecb3cd2ff7509653c9ad0ee
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/MenuPotage.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuPotage.java b/Sitbon-Benjamin-Lab3-Task2/MenuPotage.java
new file mode 100644
index 0000000000000000000000000000000000000000..5667bfc5944490cc8102cddbd10a1c57c6a92cf2
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/MenuPotage.java
@@ -0,0 +1,31 @@
+
+
+public class MenuPotage extends Menu {
+
+
+    public void add(Legume l){
+        LegumePotage pot = (LegumePotage) l;
+        this.menu.add(pot);
+    }
+
+    public void add(Herbe he){
+        HerbePotage pot = (HerbePotage) he;
+        this.menu.add(pot);
+    }
+
+    public void add(Huile hu){
+        HuilePotage pot = (HuilePotage) hu;
+        this.menu.add(pot);
+    }
+
+
+    public void addAll(Ingredient... ingredients){
+        for(Ingredient l: ingredients){
+            this.menu.add(l);
+        }
+    }
+    public Ingredient get(int index){
+        return this.menu.get(index);
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuSalades.class b/Sitbon-Benjamin-Lab3-Task2/MenuSalades.class
new file mode 100644
index 0000000000000000000000000000000000000000..7a6228de270422f7e3c68614c0562f57ef710f1b
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/MenuSalades.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuSalades.java b/Sitbon-Benjamin-Lab3-Task2/MenuSalades.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1425ade4c65872848386369b9c06821aaffe80a
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/MenuSalades.java
@@ -0,0 +1,32 @@
+
+
+public class MenuSalades extends Menu {
+
+    
+
+    public void add(Legume l){
+        LegumeSalades sal = (LegumeSalades) l;
+        this.menu.add(sal);
+    }
+
+    public void add(Herbe he){
+        HerbeSalades sal = (HerbeSalades) he;
+        this.menu.add(sal);
+    }
+
+    public void add(Huile hu){
+        HuileSalades sal = (HuileSalades) hu;
+        this.menu.add(sal);
+    }
+
+
+    public void addAll(Ingredient... ingredients){
+        for(Ingredient l: ingredients){
+            this.menu.add(l);
+        }
+    }
+    public Ingredient get(int index){
+        return this.menu.get(index);
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.class b/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.class
new file mode 100644
index 0000000000000000000000000000000000000000..09e72c396eb394930de92657f47b9a6ad846bda1
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.java b/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..15d0afe4892e0f698292c8de822ab3a8b946287b
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/MenuVapeur.java
@@ -0,0 +1,30 @@
+
+
+public class MenuVapeur extends Menu {
+
+
+    public void add(Legume l){
+        LegumeVapeur vap = (LegumeVapeur) l;
+        this.menu.add(vap);
+    }
+
+    public void add(Herbe he){
+        HerbeVapeur vap = (HerbeVapeur) he;
+        this.menu.add(vap);
+    }
+
+    public void add(Huile hu){
+        HuileVapeur vap = (HuileVapeur) hu;
+        this.menu.add(vap);
+    }
+
+    public void addAll(Ingredient... ingredients){
+        for(Ingredient l: ingredients){
+            this.menu.add(l);
+        }
+    }
+    public Ingredient get(int index){
+        return this.menu.get(index);
+    }
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Potage.class b/Sitbon-Benjamin-Lab3-Task2/Potage.class
new file mode 100644
index 0000000000000000000000000000000000000000..eb17bb3fcbdb858f129947ae296cd0b087658472
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Potage.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Potage.java b/Sitbon-Benjamin-Lab3-Task2/Potage.java
new file mode 100644
index 0000000000000000000000000000000000000000..89214802fe79bdc62e8beac35fae0c1fcb57076a
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Potage.java
@@ -0,0 +1,3 @@
+public class Potage  {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Salades.class b/Sitbon-Benjamin-Lab3-Task2/Salades.class
new file mode 100644
index 0000000000000000000000000000000000000000..34c2e7328302985c05f8cd4226a57b3e18a5c3f3
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Salades.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Salades.java b/Sitbon-Benjamin-Lab3-Task2/Salades.java
new file mode 100644
index 0000000000000000000000000000000000000000..81c344767880b189a7dd732f398354442b6608d0
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Salades.java
@@ -0,0 +1,3 @@
+public class Salades {
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task2/Vapeur.class b/Sitbon-Benjamin-Lab3-Task2/Vapeur.class
new file mode 100644
index 0000000000000000000000000000000000000000..f5da6f060efbb26ce1bdfc248d0a68b9c1c952a8
Binary files /dev/null and b/Sitbon-Benjamin-Lab3-Task2/Vapeur.class differ
diff --git a/Sitbon-Benjamin-Lab3-Task2/Vapeur.java b/Sitbon-Benjamin-Lab3-Task2/Vapeur.java
new file mode 100644
index 0000000000000000000000000000000000000000..c245870142b47f77351f37f287b59d4f5d860f4d
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task2/Vapeur.java
@@ -0,0 +1,3 @@
+public class Vapeur {
+    
+}
\ No newline at end of file