Conceitos e Exemplos – Polimorfismo: Programação Orientada a Objetos

Olá pessoal, começo neste artigo uma série sobre Programação Orientada a Objetos, farei também uma série com os principais componentes da Estrutura da Linguagem C#. Neste artigo veremos os principais conceitos sobre Polimorfismo. Acompanhem:

Definimos Polimorfismo como um princípio a partir do qual as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas.

O Polimorfismo é um mecanismo por meio do qual selecionamos as funcionalidades utilizadas de forma dinâmica por um programa no decorrer de sua execução.

Com o Polimorfismo, os mesmos atributos e objetos podem ser utilizados em objetos distintos, porém, com implementações lógicas diferentes.

Por exemplo: podemos assumir que uma bola de futebol e uma camisa da seleção brasileira são artigos esportivos, mais que o cálculo deles em uma venda é calculado de formas diferentes.

Outro exemplo: podemos dizer que uma classe chamada Vendedor e outra chamada Diretor podem ter como base uma classe chamada Pessoa, com um método chamado CalcularVendas. Se este método (definido na classe base) se comportar de maneira diferente para as chamadas feitas a partir de uma instância de Vendedor e para as chamadas feitas a partir de uma instância de Diretor, ele será considerado um método polimórfico, ou seja, um método de várias formas.

Assim podemos ter na classe base o método CalcularVendas:


public decimal CalcularVendas()

{

decimal valorUnitario = decimal.MinValue;

decimal produtosVendidos = decimal.MinValue;

return valorUnitario * produtosVendidos;

}

Na classe Vendedor temos o mesmo método, mais com a codificação diferente:


public decimal CalcularVendas()

{

decimal valorUnitario = 50;

decimal produtosVendidos = 1500;

return valorUnitario * produtosVendidos;

}

O mesmo ocorre na classe Diretor:


public decimal CalcularVendas()

{

decimal valorUnitario = 150;

decimal produtosVendidos = 3800;

decimal taxaAdicional = 100;

return taxaAdicional + (valorUnitario * produtosVendidos);

}

Assim temos um mesmo método, com diferentes formas.

Fonte de Consulta: Apostila de Programação Orientada a Objeto, da Impacta Tecnologia.

Espero que estes conceitos os auxiliem no entendimento do Polimorfismo na esfera da Orientação a Objetos, fiquem de olho nos próximos artigos sobre OO!

Assim finalizo o artigo. Muito obrigado a todos!

Um abraço, e até o próximo artigo.

Wellington Balbo de Camargo

wellingtonbalbo@gmail.com

Anúncios

10 comentários sobre “Conceitos e Exemplos – Polimorfismo: Programação Orientada a Objetos

  1. ola eu so a celma e tenho 15 anos de idade estou a fazer o médio de informática de gestão e quero q me ajudem em dar-me um exemplo de polimorfismpo

    Curtir

  2. Nessa assinatura das classe derivada, você não ta sobreescrevendo elas nesse caso teria que usar o override nela e virtual no mesmo método da classe base

    Curtir

  3. Então Mariana, Polimorfismo é “um princípio a partir do qual as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas”, ou seja, cada classe que se derivar da classe base contém métodos com assinaturas iguais, mais com comportamentos diferentes.

    Um exemplo real seria os de cima, no artigo, em que temos 3 métodos CalcularVendas, com a mesma assinatura, mais que cada um tem um comportamento diferente.

    No caso você pode usar este conceito quando deseja criar uma classe com o mesmo nome, mais com apenas algumas características diferentes em cada uma. Assim, você não precisa ficar criando diferentes classes e poluindo muito seu código!

    Espero ter esclarecido Mariana, se tiver mais dúvidas por favor envie um email para wellingtonbalbo@gmail.com que ficarei feliz em te ajudar.

    Abraços.

    Curtir

  4. Achei a explicação vaga, ficou faltando a parte das heranças entre as classes, se as classes forem separadas sem nenhuma ligação isso não se encaixa como poliformismo.

    Curtir

    • Boa Zeca, é que estou dividindo os assuntos em vários artigos, uns sobre Heranças, outro sobre Classes, esse sobre Polimorfismo, etc.

      Mais valeu pela dica cara, Abraços!

      Curtir

Expresse sua opinião!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s