Imprimir Post

Programação Orientada a Objetos com C# (Parte 5.4) – Polimorfismo

Resumo:

O objetivo não se aplica a este post.

Uma vez que o conteúdo total desta série foi dividido em partes, deve-se considerar absoluto o resumo da primeira postagem até o momento presente.

Herança - Relembre - Link Primeiro Post

Este tema da série Programação Orientada a Objetos com C# irá demandar mais publicações. Sendo assim, a numeração sequencial desta parte da série finaliza-se de 5.3 para 5.4 (vide título).

Palavras-chaves:

Herança, Variáveis, Propriedades, Modificador, Classe, Objeto.

Texto:

Mãos a Obra

Com a Introdução e apresentação de um novo aspecto no cenário exemplificado, denominado Meia Passagem (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será dar continuidade a estes assuntos e suas variantes, vistas até o momento presente.

Polimorfismo - Relembre - Link Post Anterior

Adendo

Para realização do Post foram utilizados os seguintes Programas:

  • Windows 10 Pro;
  • Microsoft Visual Studio 2010 Ultimate SP1 (Service Pack 1).

A única configuração realizada após a instalação dos programas acima, foi manter o Microsoft Visual Studio sendo executado como usuário Administrador do Sistema Operacional, a fim de evitar maiores problemas.

Recapitulando o avanço

Sobre o eixo do Polimorfismo, ao recapitular o avanço estabelecido no cenário até o momento, tem-se:

  • Classe UnicoEstudante conhecida por fazer parte da categoria de bilhetes, chamada Bilhete Único:
Polimorfismo - Classe UnicoEstudante

Classe UnicoEstudante

  • Na prática, a representação da categoria Bilhete Único já havia sido iniciada com a criação da classe UnicoComum da postagem: “Programação Orientada a Objetos com C# (Parte 4.14) – Herança”. Levando em seu código um controle de saldo independente, em conjunto com o reaproveitamento de métodos da classe Herdada Bilhete. Com a exemplificação do aspecto Integração para o Bilhete Único Comum, o resultado final foi estabelecido da seguinte forma:
Polimorfismo - Classe UnicoComum x Bilhete

Classe UnicoComum x Bilhete

  • Como a classe UnicoEstudante, protagonista desta parte da série (Polimorfismo) segue a mesma linha de controle de saldo que UnicoComum, surgiu a necessidade de estabelecer o mesmo preparo estrutural, uma vez que fora introduzida a exemplificação do aspecto Meia Passagem para o, agora, Bilhete Único Estudante:
Polimorfismo - Classe UnicoEstudante x Bilhete

Classe UnicoEstudante x Bilhete

Entendendo o Polimorfismo

Quando métodos de nomes iguais em Classes Descendentes são sobrescritos individualmente com comportamentos diferentes, ocorre o chamado Polimorfismo.

Diante das classes UnicoComum e UnicoEstudante é possível notar que estas herdaram da classe Bilhete, logo são Classes Descendentes:

Polimorfismo - Classes Descendentes Herdando da Classe Pai Bilhete

Classes Descendentes Herdando da Classe Pai Bilhete

Por herança, a Classe Bilhete fornece além de toda sua estrutura de código para ser reaproveitada, o Método CobraTarifa() para ser sobrescrito (definido como virtual):

Polimorfismo - Classe Pai ou Base Bilhete

Classe Pai ou Base Bilhete

As classes descendentes sobrescrevem o Método CobraTarifa(), criado inicialmente na classe Pai Bilhete, da seguinte maneira:

  • Dentro da estrutura da classe UnicoComum, o Método CobraTarifa() foi sobrescrito (definido como override) com o comportamento que representa o aspecto Integração.
Polimorfismo - Classe UnicoComum (comportamento que representa o aspecto Integração)

Classe UnicoComum (comportamento que representa o aspecto Integração)

  • Dentro da estrutura da classe UnicoEstudante, o Método CobraTarifa() foi sobrescrito (definido como override) com o comportamento que representa o aspecto Meia Passagem.
Polimorfismo - Classe UnicoEstudante (comportamento que representa o aspecto Meia Passagem)

Classe UnicoEstudante (comportamento que representa o aspecto Meia Passagem)

Considerações Finais:

Esta publicação visa esclarecer como se caracteriza o conceito de Polimorfismo dentro dos exemplos apresentados neste ponto da série. Vale ressaltar como regra: não existe Polimorfismo sem Herança.

É importante ressaltar que, a medida que os posts forem evoluindo, com apresentações teóricas somadas as práticas, a tendência é que o leitor vá sanando suas dúvidas e dificuldades de entendimento.

Na próxima publicação, sexta parte da série: Programação Orientada a Objetos com C# será apresentado o conceito de Interface.

Referências Bibliográficas:

As referências bibliográficas serão apresentadas no último post desta série.

Sobre o autor

Thiago Richard Vanicore

Thiago Richard Vanicore formou-se em análise e desenvolvimento de sistemas, possui certificação ITIL Foundation V2 e entre seus conhecimentos estão: ASP .Net (WebForms/MVC5/Web API) C#, HTML5, Html/XHtml, CSS3, JQuery, JQuey Mobile, JavaScript, Xml, Ajax, Json, Microsoft SqlServer, MySql, Firebird, Azure, Visual Studio Online, Scrum, UML, CRM, Quality Assurance, CTI (Computer Telephony Integration) MPSBR (Melhoria de Processos do Software Brasileiro).

Link permanente para este artigo: http://linksinergia.com.br/2016/07/27/programacao-orientada-a-objetos-com-c-parte-5-4-polimorfismo/