Y at-il une meilleure façon d'appeler chaque méthode de l'objet dérivé d'une classe de base?

voix
1

J'ai une classe de base où je tire plusieurs classes. J'ai une autre classe qui utilise toutes les classes dérivées d'une manière différente. Cependant, je veux appeler la Update()méthode (héritée de la classe de base) sur chaque classe dérivée. Y at - il un moyen facile de faire cela, ou dois - je faire quelque chose comme:

dim a As Derived1
a.Update

dim b As Derived2
b.Update

etc...
Créé 26/08/2009 à 23:17
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
5

Je pense que la meilleure façon de le faire est de garder les objets dérivés dans une liste de quelque sorte, puis itérer sur eux pour appeler mise à jour.

En pseudo-code:

foreach BaseClass item in {a, b, ...}:
    item.Update
Créé 26/08/2009 à 23:25
source utilisateur

voix
1

Vous pouvez le faire à travers le polymorphisme avec un appel de fonction qui est passé la classe de base (pseudo-code):

Dim Dev1 as Derived1 '// This is derived from the class BaseClass
Dim Dev2 as Derived2 '// This is derived from the class BaseClass

CallUpdate(Dev1)
CallUpdate(Dev2)

Function CallUpdate(BaseClass bc)
    bc.Update()
End Function
Créé 26/08/2009 à 23:33
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more