[JAVA] initialisation entre classes d'une meme hierarchie

initialisation entre classes d'une meme hierarchie [JAVA] - Programmation

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.

Reply

Marsh Posté le 25-10-2001 à 15:59:12   

Reply

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.

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed