Si ton objet a été créé comme instance de
AA (
A myA= new AA();), il est déjà de type
AA, il n'y qu'à effectuer un cast au moment où l'on veut utiliser une méthode spécifique à
AA (
((AA)myA).methodeDeAA()).
Si ton objet a été créé comme instance de
A (
A myA= new A();), il est impossible de le "transformer" après coup en
AA... Il faut définir le type de l'objet dès son instanciation.
En fonction du contexte de ton problème, tu peux peut-être utiliser le design pattern
Factory: les objets ne sont pas instanciés par un appel direct au constructeur, mais via une méthode statique qui décide quel constructeur appeler :
1 2 3 4 5 6 7 8 9 10 11
|
class A
{
public static A newInstance(/*arguments...*/)
{
if (/*test sur les arguments...*/) return new AA(/*arguments*/);
else if (/*test sur les arguments...*/) return new AB(/*arguments*/);
else if (/*test sur les arguments...*/) return new AC(/*arguments*/);
// ...
}
} |
Partager