initialisation entre classes d'une meme hierarchie [JAVA] - Programmation
Marsh Posté le 25-10-2001 à 18:30:11
maphi a écrit a écrit : Bonjour a tous, Est-ce qqn à une reponse à ce pb : Soit deux classes A et B dont l'une est sous classe de l'autre Ex : public class B{ protected String s; ... } public class A extends B{ private int i; ... } j'aimerai initialiser une instance de la classe A a partir d'une instance de la classe B. Ex : B b = new B("toto" ); A a = new A(b);//a.s = toto le but etant que tous les attributs communs à a et b aient la meme valeur. En fait j'aimerai obtenir le meme resultat que la commande a = (A)b; mais ce, ca ne marche evidemment pas... Tank iou. |
Qu'est ce qui ne marche pas ? le cast a=(A)b ???
Dans la solution que tu évoques :
A a = new A(b);
le seul moyen que je vois pour qu'un tel truc fonctionne, serait de faire la copie 1 à 1 des propriétés communes dans ton constructeur.
Marsh Posté le 28-10-2001 à 12:40:36
la question c'est : que devienne les attributs qui ne sont pas communs à A et B ?
et puis c'est pas très beau qu'une classe (B) connaisse les classes qui héritent d'elles (B)... il faudrait peut-être que tu repense tes classes.
Marsh Posté le 25-10-2001 à 15:59:12
Bonjour a tous,
Est-ce qqn à une reponse à ce pb :
Soit deux classes A et B dont l'une est sous classe de l'autre
Ex :
public class B{
protected String s;
...
}
public class A extends B{
private int i;
...
}
j'aimerai initialiser une instance de la classe A a partir d'une instance de la classe B.
Ex :
B b = new B("toto" );
A a = new A(b);//a.s = toto
le but etant que tous les attributs communs à a et b aient la meme valeur.
En fait j'aimerai obtenir le meme resultat que la commande
a = (A)b; mais ce, ca ne marche evidemment pas...
Tank iou.