Esiste un modo migliore per chiamare il metodo di ciascun oggetto derivato per una classe base?
-
20-09-2019 - |
Domanda
Ho una classe base da cui derivano diverse classi.Ho un'altra classe che utilizza tutte quelle classi derivate in modo diverso.Tuttavia, voglio chiamare il Update()
metodo (ereditato dalla classe base) su ciascuna classe derivata.Esiste un modo semplice per farlo o devo fare qualcosa del tipo:
dim a As Derived1
a.Update
dim b As Derived2
b.Update
etc...
Soluzione
Penso che il modo migliore per farlo sia mantenere gli oggetti derivati in un elenco di qualche tipo e quindi scorrere su di essi per chiamare Update.
In pseudo-codice:
foreach BaseClass item in {a, b, ...}:
item.Update
Altri suggerimenti
Si può fare attraverso il polimorfismo con una chiamata di funzione che è passato alla classe di base (pseudo-codice):
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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow