import java.util.ArrayList; import java.util.List; interface Verpackung { void enthalte(); } class Kasten implements Verpackung { private List verpackungen = new ArrayList(); @Override public void enthalte() { System.out.println("Kasten"); for (Verpackung v : verpackungen) { v.enthalte(); } } public void legeRein(Verpackung v) { verpackungen.add(v); } public void nimmRaus(Verpackung v) { verpackungen.remove(v); } } class Schachtel implements Verpackung { @Override public void enthalte() { System.out.println("Schachtel"); } } class Dose implements Verpackung { @Override public void enthalte() { System.out.println("Dose"); } } public class Kompositum { public static void main(String[] args) { schauRein(); } public static void schauRein() { Schachtel schachtel1 = new Schachtel(), schachtel2 = new Schachtel(), schachtel3 = new Schachtel(), schachtel4 = new Schachtel(); Dose dose1 = new Dose(), dose2 = new Dose(), dose3 = new Dose(); Kasten kasten1 = new Kasten(), kasten2 = new Kasten(); kasten1.legeRein(schachtel1); kasten1.legeRein(schachtel2); kasten2.legeRein(schachtel3); kasten2.legeRein(schachtel4); kasten2.legeRein(dose1); kasten2.legeRein(dose2); kasten2.legeRein(dose3); Kasten truhe = new Kasten(); truhe.legeRein(kasten1); truhe.legeRein(kasten2); truhe.enthalte(); } }