import java.util.LinkedList; public class FruitBasket { private LinkedList fruits = new LinkedList<>(); public void addFruit(Fruit f) { fruits.add(f); } public LinkedList getApples() { LinkedList ret = new LinkedList<>(); for (Fruit f : fruits) if (f.isApple()) // alternativ: f instanceof Apple ret.add((Apple) f); return ret; } public LinkedList getEqualOrLongerShelfLife(int n) { LinkedList ret = new LinkedList<>(); for (Fruit f : fruits) if (f.shelfLife() >= n) ret.add(f); return ret; } public static void main(String[] args) { // Zum "Testen" (war nicht verlangt): FruitBasket s1 = new FruitBasket(); s1.addFruit(new Apple()); FruitBasket s2 = new FruitBasket(); s1.addFruit(new Banana()); s2.addFruit(new Apple()); s1.addFruit(new Apple()); s1.addFruit(new Pineapple()); s1.addFruit(new GrannySmith()); s1.addFruit(new PinkLady()); s1.addFruit(new Banana()); s1.addFruit(new PinkLady()); for (Fruit f : s1.getApples()) System.out.println(f); } }