You are here

[Tutorial] Heranças,classes abstratas e Polimorfismo em C#

Tweet me!

Tutorial demonstrando implantação de polimorfismo, heranças e classes abstratas em C# 

Herança

 

 

Herança é um dos mais importantes e mais usados conceitos de orientação a Objetos.

Usando herança em uma classe você consegue herdar as propriedades e métodos da classe pai, uma classe que realizou a herança de outra classe é chamada de Classe filha.

Ao efetuarmos a herança, todos os Métodos, propriedades, eventos são herdados para a classe filha, evitando assim duplicidade de código.

 

Demonstrando Herança

 

Para demonstrarmos herança ate o final desse tutorial iremos usar a classe Pessoa, para fazermos uma analogia com o mundo real, afim de obtermos maior entendimento.

Para iniciarmos os exemplos iremos criar a classe pessoa, com as seguintes propriedades, Nome e Idade conforme o exemplo abaixo:

 

class Pessoa

{

public string Nome

{ get; set; }

 

 

public int Idade

{ get; set; }

 

}

 

 

Criaremos entao 2 metodos para adicionar e retirar a idade da pessoa, para isso siga o exemplo abaixo:

 

 

public void AdicionaIdade(int pIdade)

{

Idade += pIdade;

 }

 

public void RetiraIdade(int pIdade)

{

Idade -= pIdade;

}

 

 

Criei um formulário para demonstrar o uso da classe, caso queiram criar também segue o modelo como na imagem abaixo:

 

 

Os componentes usados foram um ListBox e um Button.

 

No evento onClick do botão adicionei os seguinte códigos :

 

Pessoa cPessoa = new Pessoa();

 

cPessoa.Idade = 17;

cPessoa.Nome = "Thiago";

 

cPessoa.AdicionaIdade(20);

 

listBox1.Items.Add(cPessoa.Idade);

 

 

Ele cria uma variavel chamada cPessoa, do tipo Pessoa, e coloca o nome dessa pessoa como sendo Thiago e a idade como sendo 17, após isso, ele adiciona 20 anos a idade dessa pessoa, após isso é adicionado ao nosso List box a idade final dessa pessoa conforme mostrado na imagem abaixo :

 

 

 

Agora iremos criar uma nova classe que ira herdar os métodos e atributos da classe Pessoa, daremos o nome dessa classe como sendo HerancaPessoa.

 

A sintaxe para efetuarmos a herança das classes é a seguinte:

 

Class [nomeclasse] :[classequeseraherdada]

 

Em nosso exemplo ficaria assim :

 

class HerancaPessoa : Pessoa

{

 

}

 

No nosso botão que criamos, colocaremos agora o seguinte código:

 

HerancaPessoa oHeranca = new HerancaPessoa();

 

oHeranca.Idade = 17;

oHeranca.Nome = "Thiago";

 

oHeranca.AdicionaIdade(20);

 

listBox1.Items.Add(oHeranca.Idade);

 

 

Ai já mostra toda a herança sendo efetuada, se executarmo o sistema e clicarmos no botao, iremos ter o mesmo resultado (37) em nossa ListBox.

 

Isto foi como usar as classes abstratas, podemos usala somente para fazer a herança ou acicionar vas funcionalidades.

 

 

 

 

 

 

 

Polimorfismo e Classes Abstratas

 

O conceito de polimorfismo seria a possibilidade de dois ou mais objetos executar a mesma acao, um exemplo prático seria uma Moto e um Carro, os dois tem a ação em comum de Frear e Acelerar, em orientação a objetos usamos classes abstratas para dar funcionalidades iguais a objetos diferentes.

Para criarmos uma classe abstrata seguimos a seguinte Sintaxe:

 

Abstract class [nomedaclasse 

 

Um exemplo prático pode ser observado abaixo :

 

 

abstract class ClasseAbstrata

{

 

 

}

 

 

 

Criando métodos abstratos

 

Quando criamos um método abstrato, fazemos com que ele seje implemetando em todas as classes que herdarem dessa classe abstrata, para criarmos um metodo abstrato usamos a palavra “abstract” e não colocamos um bloco de codigo para o metodo, um exemplo pode ser visto abaixo :

 

 

public abstract void Andar();

 

 

 

Herdando Metodos Abstratos

 

Para herdarmos uma classe abstrata, basta seguirmos a seguinte sintaxe :

 

Class [nomeclasse] : [classeabstrata]

 

Para um exemplo prático confira abaixo :

 

 

class ClasseNova : ClasseAbstrata

{

 

}

 

 

Criamos uma classe chamada ClasseNova que herdou da ClasseAbstrata, se tentarmos rodar o sistema agora, ira dar um erro falando que nosso metodo andar ainda não foi implementado em nossa classeNova, um macete para implementar as classes basta ficar com o mouse em cima do nome da classe abstrata que o intelisense ira dar a opcao para implementar os metodos que estao faltando, conforme esta no exemplo abaixo :

 

 

class ClasseNova : ClasseAbstrata

{

 

public override void Andar()

{

throw new NotImplementedException();

}

}

 

 

 

 

Então é isso, em nossos próximos tutoriais iremos tratar de Interfaces.

Caso haja alguma dúvida bastam acessar nosso fórum e postar lá.

 

 

Link : http://www.forumdev.devbr.net/index.php?showtopic=56

Comentários
Adicionar novo Busca RSS
ADILSON  - ???   |189.18.38.xxx |2009-03-15 12:35:56
Gostei do tut, pena não ter mais exemplos pra entendermos melhor esses
conceitos...mas, sobre polimorfismo deu pra clarear
a cabeça...vlw!!!!!!!!!!!!!!!!
Roberto  - Demais   |200.175.128.xxx |2010-01-29 10:12:30
Ow gostei muito da explicação tava prescisando disso, q mostrassem como é a
sintaxe desses pelares da OO. Pq daquela esplicação q foge da programação
Escrever um comentário
Nome:
E-mail:
 
Website:
Título:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0
:confused::cheer:
B):evil:
:silly::dry:
:lol::kiss:
:D:pinch:
:(:shock:
:X:side:
:):P
:unsure::woohoo:
:huh::whistle:
;):s
:!::?:
:idea::arrow:
 
Por favor coloque o código anti-spam que você lê na imagem.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."