C# - Classe base, classe derivada e alguns conceitos básicos - I


 Neste artigo veremos os conceitos de classe base, derivada, a palavra-chave base, o modificador virtual , o modificador override e alguns conceitos básicos.

Hoje vamos rever alguns conceitos básicos da programação orientada a objetos (POO) na linguagem C#.

A POO possui uma nomenclatura que pode confundir os novatos, então vamos começar esclarecendo alguns conceitos bem básicos:

Criando uma classe base e usando a herança com uma classe derivada

Vejamos como os conceitos de classe base, classe derivada e herança atuam em conjunto:

Vamos criar uma classe chamada Pessoa que será a nossa classe base:

Superclasse ou classe base

A classe base Pessoa possui as propriedades Nome e Telefone e o método GetInfo() usando a palavra-chave ou modificador virtual. As propriedades usam o modificador protected de forma que somente poderão ser acessadas pela classe e pelas classes que herdarem desta classe.

Nota: O código usa os recursos da inicialização de propriedades automáticas e da interpolação de strings.

A palavra-chave virtual é usada para modificar uma declaração de método, propriedade, indexador ou evento e permitir que ela seja substituída em uma classe derivada.

Vamos agora criar a classe Funcionario que herda da classe base Pessoa :

Subclasse ou classe derivada

A classe derivada Funcionario herda de Pessoa e terá acesso a seus métodos e propriedades públicas e/ou protected.

A classe Funcionario possui uma propriedade Codigo e esta substituindo o método GetInfo() da classe base usando o modificador override. Isso é possível pois o método foi definido com o modificador virtual na classe base.

Por padrão, os métodos não são virtuais. Você não pode substituir um método não virtual.

O modificador override é necessário para estender ou modificar a implementação abstrata ou virtual de um método, propriedade, indexador ou evento herdado.

Note que no método GetInfo() da classe derivada usamos a palavra-chave base invocando o método GetInfo() da classe base.

A palavra-chave base é usada para acessar membros de classe base de dentro de uma classe derivada:

Um acesso à classe base é permitido somente em um construtor, em um método de instância ou em um acessador de propriedade de instância.

Abaixo no código criamos um objeto ou uma instância da classe Funcionario e chamamos o método GetInfo() de Funcionario:

No resultado final vemos que o método GetInfo() da classe base foi chamado usando a palavra-chave base e assim obtivemos o nome e telefone do funcionário.

Abaixo temos uma figura que descreve o fluxo da execução :

Esse é o comportamento padrão, mas, existe um problema que ocorre ao chamar um método virtual no construtor de classe base que pode causar um comportamento inconsistente do aplicativo, já que você estar chamando o método de classe derivada antes de inicializar todas as propriedades da classe derivada.

Isso eu vou mostrar na próxima parte do artigo. Aguarde...

"Jesus respondeu, e disse-lhe: Se alguém me ama, guardará a minha palavra, e meu Pai o amará, e viremos para ele, e faremos nele morada."
João 14:23

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti