Polimorfismo

2 respostas
edymrex

Tenho uma dúvida sobre polimorfismo utilizando métodos.

Irei colocar o código em C#, pois tenho que colocar implicitamente as palavras chave:

protected override void DoExecute(object[] pk)
        {
           

            ICstATENDIMENTOCOMPL aCompl =((ICstATENDIMENTOCOMPL)RMSBroker.CreateRemoteObject(typeof(ICstATENDIMENTOCOMPL), "CstATENDIMENTOCOMPLData"));

            if (aCompl.ExisteNumSerie(Convert.ToInt32(pk[0]), Convert.ToInt32(pk[1]),Convert.ToInt32( pk[2])))
            {
                this.components = new System.ComponentModel.Container();
                this.DataServerName = "CstATENDIMENTOCOMPLData";
                this.FormName = "CstATENDIMENTOCOMPLForm";
                this.SetFilter("ZATENDIMENTOCOMPL.CODCOLIGADA = :1", this.Context.CodColigada);
                base.DoExecute(pk);

            }
            


        }

Bem, esse método DoExecute é de uma classe ancestral minha, quando eu efetuo o override em uma método de
uma classe mãe, eu roubo o método para minha classe filha, mas neste caso específico eu tive que “devolver” o método
para minha classe ancestral resumindo, eu pego um método da minha classe mãe utilizo ele em um certo tempo e depois se eu quizer
devolver o método e só repassar o método com a mesma assinatura em java ficaria “super.DoExecute(pk);” esse procedimento é normal ?
alguém já passou por essa situação ?

2 Respostas

sergiotaborda

Puppets:
depois se eu quizer
devolver o método e só repassar o método com a mesma assinatura em java ficaria “super.DoExecute(pk);” esse procedimento é normal ?
alguém já passou por essa situação ?

Sim, é normal. A sua nova classe apenas cria um envolucro (wrapper) do método. Este é um tipo especial de override.

edymrex

Obrigado cara

Criado 31 de março de 2008
Ultima resposta 31 de mar. de 2008
Respostas 2
Participantes 2