Imprimir Post

Programação Orientada a Objetos com C# (Parte 6.6) – 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# irá demandar mais publicações. Sendo assim, a numeração sequencial desta parte da série passou de 6.5 para 6.6 (vide título) e assim seguirá (6.7, 6.8…) mediante a necessidade de conclusão.

Palavras-chaves:

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

Texto:

Mãos a Obra

Com a alteração das Classes Unitario, UnicoComum e UnicoEstudante estabelecendo um contrato com IBilhete, tem-se a conclusão do terceiro dentre os 3 passos estabelecidos para aplicabilidade de Interface (vide post anterior), o próximo passo será alterar a Classe Program de maneira a prepará-la para execução utilizando todo o arranjo estabelecido até o momento.

Interface - 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.

Alterando a Classe Program

A classe Program se dará de maneira a manter a sua estrutura, definida na postagem: “Programação Orientada a Objetos com C# (Parte 5.3) – Polimorfismo”.

Tela ao colar o código:

Interface - Microsoft Visual Studio 2010 Ultimate – Tela após Alteração da Classe

Microsoft Visual Studio 2010 Ultimate – Tela após Alteração da Classe

Por fim, deve-se salvar a classe Program e suas alterações clicando no botão Salvar. Tela com a confirmação positiva (ver rodapé da janela) ao clicar no botão Salvar:

Interface - Microsoft Visual Studio 2010 Ultimate – Tela após Salvar o Projeto

Microsoft Visual Studio 2010 Ultimate – Tela após Salvar o Projeto

Finalizando o exemplo, resta apenas executar a Aplicação, deve-se então clicar no botão Start Debugging (F5):

Interface - Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Surgirá um janela de confirmação, clicar no botão Yes:

Interface - Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Tela ao clicar no botão Yes:

Interface - Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

Microsoft Visual Studio 2010 Ultimate – Execução da Aplicação

No resultado da execução, o Microsoft Visual Studio se encarregou de apresentar uma listagem de erros com a seguinte descrição:

  • “Error List:‘ConsoleApplication.Unitario’ does not implement interface member ‘ConsoleApplication.IBilhete.Debita()’”.
  • “Error List:‘ConsoleApplication.Unitario’ does not implement interface member ‘ConsoleApplication.IBilhete.Saldo()'”.

Estas mensagens de erro ocorreram em razão da tentativa de execução da aplicação, com a classe Unitario utilizando-se da Interface IBilhete, porém não respeitando em sua estrutura de código a implementação obrigatória dos métodos Debita()Saldo() e CobraTarifa().

Considerações Finais:

Esta publicação visa destacar a Classe Unitario deixando pendente o cumprindo do contrato estabelecido com a Interface IBilhete. Além disso foram criadas algumas percepções e dúvidas de maneira proposital, sendo estas:

“Como implementar métodos obrigatórios sendo que a classe Unitario não necessita de todos estes, de maneira que o compilador não acuse erros?”.

“Uma outra dúvida que surge é que o método CobraTarifa() não está sendo implementado na classe Unitario e ainda sim, o compilador só acusou erros para os métodos Debita() e Saldo(), como isso é possível? “

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

Essas dúvidas irão garantir ao longo dos próximos posts, um panorama que reflita na memória do leitor, todos os outros assuntos desbravados até este ponto do tema.

É 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, ainda sexta parte da série: Programação Orientada a Objetos com C# será apresentado o sétimo post sobre Interface, o leitor irá conferir a continuidade do tema entre outros aspectos relevantes a este assunto.

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/09/07/programacao-orientada-a-objetos-com-c-parte-6-6-interface/