Naja alle Instanzen einer Klasse sollen schon die gleichen Werte haben, diese Werte sind aber nicht konstant... Ich glaube ich muss nochmal mein Problem spezifieren.
Ich müsste jeden Step folgendes machen können:
1. best. Anzahl von Objekten der Klassen 1 und 2 erzeugen
2. die Werte Var1 und Var2 für alle Instanzen von Klasse 1 und Klasse 2 ändern ( alle Instanzen von Klasse1 haben den selben Wert Var1 und alle Instanzen von Klasse 2 haben den selben Wert Var1)
3. Ich bekomme ein Object vom Typ der Oberklasse übergeben und möchte auf Var1 zugreifen (weiß an der Stelle nicht ob es Instanz von Klasse 1 oder 2 ist?
hier hab ich noch ein Beispiel, was nochmal bisschen verdeutlichen soll, was ich meine, vielleicht sticht euch ja der Fehler gleich ins Gesicht. Das Beispiel macht nicht viel Sinn, demonstriert aber hoffentlich was ich erreichen möchte.
[Java]
public abstract class Element {
protected static double var1;
protected static double var2;
public static double getVar1() {
return var1;
}
public static void setVar1(double var1) {
Element.var1 = var1;
}
public static double getVar2() {
return var2;
}
public static void setVar2(double var2) {
Element.var2 = var2;
}
}
public class Element1 extends Element{
public Element1(){
super();
var1=0;
var2=0;
}
}
public class Element2 extends Element{
public Element2(){
super();
var1=4;
var2=8;
}
}
import java.util.*;
public class uhiu {
public static void main(String[] args) {
List<Element> elements = new ArrayList<Element>();
Random random = new Random();
for (int i = 0; i < 50; i++) {
if (i % 2 == 0)
elements.add(new Element1());
else
elements.add(new Element2());
Element1.setVar1(Element.getVar1() + 1);
Element1.setVar2(Element.getVar1() - 1);
meth1(elements.get(random.nextInt(elements.size())));
}
}
public static void meth1(Element ele) {
var1 = ele.getVar1;
System.out.println(var1);
}
}
[/code]
Ja und was rauskommen sollte is, dass bei z.B. i= 3 Var1 bei allen Instanzen von Element 1 =3 und bei Element 2 =7 und ich bei meth1 für Instanzen von Element eins 3 und bei zwei 7 rausbekomme.
greets