Nouveau nouveau code :
class SUPER {
public static Object[] instances;
public SUPER() {
instances = new Object[3];
}
}
class sous1 extends SUPER {
public char a = 'a';
public char b = 'b';
public void chope1() {
sous2 instance2 = (sous2) super.instances[2];
System.out.println(instance2.c + " " + instance2.d);
}
}
class sous2 extends SUPER {
public char c = 'c';
public char d = 'd';
public void chope2() {
sous1 instance1 = (sous1) super.instances[1];
System.out.println(instance1.a + " " + instance1.b);
}
}
public class NewMain {
public static void main(String[] args) {
sous1 instance1 = new sous1();
sous2 instance2 = new sous2();
instance1.instances[1] = instance1;
instance2.instances[2] = instance2;
System.out.println("depuis la sousclasse contenant a b");
instance1.chope1();
System.out.println("depuis la sous classe contenant c d");
instance2.chope2();
}
}
c'est super pratique, j'accède au paramètres de toutes mes sous-classes depuis n'importe laquelle, et en +, par le chemin habituel ( nom_de_l'instance.nom_de_l'attribut ) merci le transtypage, je ne connaissais pas avant et ça m'aurait bien servi... -_-°.
J'ai pris un tableau normal car l'arraylist me posait probleme, je voulais stocker mes instances à l'index de leur numéro ( instance1 en index 1) pour rendre le programme + clair.
Je pensais que l'arraylist rajoutait le nombre de places pour que les index spécifiés dans les "add" existent :
nom_arraylist.add(44,object_qcq );
et paf, l'arraylist fait au moins 45 de long, mais apparemment non.