La réponse à la question initiale est TRÈS simple : "pas./"
Normalement, une fois que tu as mis ensemble des torchons (B) et des serviettes (C), tu ne fais plus que des traitements qui ont un sens pour les torchons et les serviettes (appeler la méthode essuyer par exemple). Bien sur, le code qui sera utilisé va dépendre du type réel de ton objet, mais ceci est fait pour toi à l'éxecution, sans que tu ais besoin de savoir dans quel cas (B ou C) tu te trouves.
« Cependant, la "Scene_titre" par exemple a une méthode qui lui est spécifique, comme "commencer_partie()". »
vu de loin, j'ai envie de dire que ce n'est pas à un écran de commencer la partie. Après, c'est très facile de dire ça... je n'ai pas l'organisation globale sous les yeux, ni les sémantiques des classes Screen_foo et de la méthode commencer_partie().
Cela dit, assure toi que le code de cette méthode est bel et bien à sa place.
LOKILOK :
« Après comme j'ai dis j'en sais rien si c'est propre ou pas, mais c'est une solution possible. »
ça se situe quelque part entre "dégueulasse" et "pire".
En vrai, les unions c'est l'horreur. Le seul cas propre que j'ai en tête, c'est quand on veut manipuler la structure interne d'un nombre flottant. Mais pratiquement personne ne fait des choses aussi bas niveau (hors gens qui codent une libm).