j'ai un arbre d'objet qui ressemble àpassant superclasse en tant que paramètre à la méthode attendant sous classe
Ball
/ \
LegalBall IllegalBall
Et j'ai 2 méthodes:
class o {
AddBall(LegalBall l)
AddBall(IllegalBall i)
}
dans une autre classe que je voudrais faire ce qui suit:
o.AddBall(myBall);
où myBall est de type Ball. Et l'obtenir pour appeler la méthode correcte en fonction du sous-type. Apparemment, je ne peux pas faire cela ... les arguments ne sont pas applicables.
Est-ce que quelqu'un sait comment je peux réaliser ce que je veux? Ou s'il y a un bon travail autour
Merci
EDIT: l'application que je suis en train de construire est une chose de type tableau de bord de cricket. Donc, selon le type de balle qui est joué, divers autres éléments devraient changer. Mon intention originale était de pouvoir spécifier le type de balle et les points marqués à partir d'une forme d'interface utilisateur, puis de créer une balle de type approprié à partir d'une BallFactory, puis par exemple lorsque j'envoie une balle non à l'équipe ajoutez la valeur sur le score d'équipe mais ajoutez également la valeur au compteur no balls. Mais quand je donne la même balle à l'analyse de Batsmens à traiter il devrait seulement marquer la valeur-1 au total de batteurs.
J'espère que ce n'est pas trop mal une explication de mon intention originale.
Je vais devoir ajouter AddBall à plus que Basket, un certain nombre d'autres objets. Aurai-je besoin d'implémenter une méthode pour chaque type auquel je veux ajouter une balle? – Rocco
Mis à jour avec le cas général. – dalle
Il serait curieux d'ajouter des méthodes "visit" et "accept" à une interface par ailleurs normale. –