Voici un exemple concret de mon problème . c'est analogue à mon probleme car je dois gérer des copies de molécules de huckel.
en fait ds l'exemple ci dessous
A = Atom de base
AA : atom huckel
contA : squelette de la molécule . j'ai besoin d'un constucteur par copie
dans mon main quand je fais une iteration sur la copie du conteneur ca plante sur le cast , forcément, pcq je caste en AA et que mon constructeur par copie ne copie que des objets de classe A foaut -il donc que je fasse un nouveau conteneur contAA ? et que donc pour gérer des objets AA je ne me serve plus du tout de contA ?
public class A {
public int a;
public A(int a) {
this.a = a;
}
public A(A other) {
this.a = other.a;
}
}
public class AA extends A {
public int aa;
public AA (int a, int aa) {
super (a);
this.aa = aa;
}
public AA (AA other) {
super (other);
this.aa = other.aa;
}
}
public class ContA {
public ArrayList contA;
public ContA() {
contA = new ArrayList ();
}
public ContA(ContA other) {
contA = new ArrayList ();
Iterator it = other.contA.iterator();
A a;
while (it.hasNext()) {
a = (A) it.next();
this.contA.add(new A (a));
}
}
}
import java.util.Iterator;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
ContA myContA = new ContA();
AA a1 = new AA(11, 20);
AA a2 = new AA(12, 25);
myContA.contA.add(a1);
myContA.contA.add(a2);
Iterator it = myContA.contA.iterator();
AA a;
while (it.hasNext()) {
a = (AA) it.next();
System.out.println(a.a + " " + a.aa);
}
ContA copyContA = new ContA(myContA);
it = copyContA.contA.iterator();
while (it.hasNext()) {
a = (AA) it.next();
System.out.println(a.a + " " + a.aa);
}
}
[^] # Re: Interface
Posté par nicolas . En réponse au message dériver une classe conteneur de données de classe dérivée. Évalué à 1.
en fait ds l'exemple ci dessous
A = Atom de base
AA : atom huckel
contA : squelette de la molécule . j'ai besoin d'un constucteur par copie
dans mon main quand je fais une iteration sur la copie du conteneur ca plante sur le cast , forcément, pcq je caste en AA et que mon constructeur par copie ne copie que des objets de classe A foaut -il donc que je fasse un nouveau conteneur contAA ? et que donc pour gérer des objets AA je ne me serve plus du tout de contA ?
public class A {
public int a;
public A(int a) {
this.a = a;
}
public A(A other) {
this.a = other.a;
}
}
public class AA extends A {
public int aa;
public AA (int a, int aa) {
super (a);
this.aa = aa;
}
public AA (AA other) {
super (other);
this.aa = other.aa;
}
}
import java.util.ArrayList;
import java.util.Iterator;
public class ContA {
public ArrayList contA;
public ContA() {
contA = new ArrayList ();
}
public ContA(ContA other) {
contA = new ArrayList ();
Iterator it = other.contA.iterator();
A a;
while (it.hasNext()) {
a = (A) it.next();
this.contA.add(new A (a));
}
}
}
import java.util.Iterator;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
ContA myContA = new ContA();
AA a1 = new AA(11, 20);
AA a2 = new AA(12, 25);
myContA.contA.add(a1);
myContA.contA.add(a2);
Iterator it = myContA.contA.iterator();
AA a;
while (it.hasNext()) {
a = (AA) it.next();
System.out.println(a.a + " " + a.aa);
}
ContA copyContA = new ContA(myContA);
it = copyContA.contA.iterator();
while (it.hasNext()) {
a = (AA) it.next();
System.out.println(a.a + " " + a.aa);
}
}
}