Hallo,
ich habe eine abstrakte Klasse (Baume) und zwei abgeleitete Klassen (Ahorn, Zeder).
In einer ArrayList<Baume> habe ich sowohl Zedern, als auch Ahorne. Nun möchte von allen Ahornen eine Funktion ausführen, die in der Klasse Zedern nicht vorkommt.
Meine bisherigen versuche:
Gibt es eine Möglichkeit, eine solche Schleife zu formulieren, oder ist die einzige Lösung, dass ich die Methode "schuettelDenAhorn" der Klasse Baume hinzufüge?
Meiner Meinung nach macht sie da überhaupt keinen Sinn.
Oder kann ich vielleicht eine Schleife formulieren, die ausschließlich über die Ahorne der ArrayList<Baume> iteriert?
Vielen Dank für Eure Unterstützung,
Ulrich
ich habe eine abstrakte Klasse (Baume) und zwei abgeleitete Klassen (Ahorn, Zeder).
In einer ArrayList<Baume> habe ich sowohl Zedern, als auch Ahorne. Nun möchte von allen Ahornen eine Funktion ausführen, die in der Klasse Zedern nicht vorkommt.
Meine bisherigen versuche:
Java:
public class Test {
public static void main(String[] args) {
ArrayList<Baume> meineBaume = new ArrayList<Baume>();
meineBaume.add(new Ahorn());
meineBaume.add(new Ahorn());
meineBaume.add(new Zeder());
// Ziel: Schleife über eine ArrayList<baume>, und eine Methode ausführen,
// die nur in manchen Unterklassen von "Baume" existiert
for (int i = 0; i < meineBaume.size(); i++) {
if (meineBaume.get(i) instanceof Ahorn){
meineBaume.schuettelDenAhorn(); // The method schuettelDenAhorn() is undefined for type Arraylist<Baume>
}
}
}
}
public abstract class Baume {
}
public class Zeder extends Baume {
}
public class Ahorn extends Baume{
public void schuettelDenAhorn(){
System.out.println("geschüttelt");
}
}
Meiner Meinung nach macht sie da überhaupt keinen Sinn.
Oder kann ich vielleicht eine Schleife formulieren, die ausschließlich über die Ahorne der ArrayList<Baume> iteriert?
Vielen Dank für Eure Unterstützung,
Ulrich