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

StackOverflow https://stackoverflow.com/questions/1337845

Question

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 méthode Update() (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...
Était-ce utile?

La solution

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

Autres conseils

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top