Imprimir Post

Programação Orientada a Objetos com C# (Parte 6.9) – Interface

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.

Interface - Relembre - Link Primeiro Post

Este tema da série Programação Orientada a Objetos com C# encerra-se nesta publicação. Sendo assim, a numeração sequencial desta parte da série finaliza-se de 6.8 para 6.9 (vide título).

Palavras-chaves:

Encapsulamento, Herança, Polimorfismo, Propriedades, Classe, Objeto.

Texto:

Mãos a Obra

Com a compreensão da classe Unitario utilizando-se da classe herdada Bilhete para realizar a implementação de métodos obrigatórios exigidos pela Interface IBilhete, fica evidente a combinação entre Interfaces e a prática de Herança (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será entender como Classes podem implementar métodos exigidos por uma Interface, realizando outras técnicas possíveis de maneira que o compilador não acuse erros por violação de contrato.

Interface - Relembre - Link Post Anterior

Entendendo a responsabilidade de cada característica

Anteriormente foi apresentada a execução da Aplicação onde as Classes UnicoComum e UnicoEstudante assumiram a responsabilidade de implementar os métodos exigidos pela Interface IBilhete.

Recorda-se que, IBilhete exige a implementação dos métodos Saldo(), CobraTarifa()Debita():

Interface - Interface IBilhete

Interface IBilhete

Diante da classes UnicoComum e UnicoEstudante ao utilizarem-se desta Interface, nota-se que estas implementam os três métodos exigidos:

Interface - Classe UnicoComum x UnicoEstudante

Classe UnicoComum x UnicoEstudante

Ao final a execução é realizada sem erros:

Interface - Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação (Janela de Console)

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação (Janela de Console)

Nesta altura da série, a dúvida que cabe, portanto é:

“Porque as classes UnicoComum e UnicoEstudante não acusaram os mesmos erros que a classe Unitario no compilador? “

Partindo para a resposta da dúvida acima, e, com o intuito de resgatar todos os assuntos e suas variantes vistas até o momento, para o cenário exemplificado, deve-se atentar-se primeiramente, portanto, que as classes UnicoComum e UnicoEstudante implementam todos os métodos exigidos por IBilhete, o que garante o cumprimento da premissa básica da Interface:

Interface - Classe UnicoComum x UnicoEstudante

Classe UnicoComum x UnicoEstudante

Dentro das características de implementação destaca-se CobraTarifa(), método reaproveitado da classe Herdada Bilhete que é implementado com a técnica de sobrescrita de métodos (override).

Conclusivamente, quando ocorre a execução da aplicação, a Interface IBilhete interpreta que os métodos Saldo(), Debita() e CobraTarifa() estão sendo implementados, ainda que este último seja um método herdado da classe Bilhete e sobrescrito pelas classes UnicoComum e UnicoEstudante.

Considerações Finais:

Esta publicação visa esclarecer como se caracteriza o conceito de Interface dentro dos exemplos apresentados neste ponto da série. Vale ressaltar que é totalmente possível mesclar técnicas das mais variadas em classes que utilizam-se de uma interface, como por exemplo Herança, sobrescrita de métodos (override), entre outros.

É 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, sétima parte da série: Programação Orientada a Objetos com C# será apresentado o conceito de Namespaces.

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/10/05/programacao-orientada-a-objetos-com-c-parte-6-9-interface/