Existe uma maneira melhor de chamar o método de cada objeto derivado para uma classe base?

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

Pergunta

Eu tenho uma classe base onde derivar várias classes. Eu tenho outra classe que usa todas as classes derivadas de uma maneira diferente. No entanto, eu quero ligar para o Update() Método (herdado da classe base) em cada classe derivada. Existe uma maneira fácil de fazer isso, ou eu tenho que fazer algo como:

dim a As Derived1
a.Update

dim b As Derived2
b.Update

etc...
Foi útil?

Solução

Eu acho que a melhor maneira de fazer isso é manter os objetos derivados em uma lista de algum tipo e, em seguida, iterar sobre eles para chamar a atualização.

No código pseudo:

foreach BaseClass item in {a, b, ...}:
    item.Update

Outras dicas

Você pode fazer isso através do polimorfismo com uma chamada de função que passou na classe base (pseudo-código):

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top