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 |
|
|
|||||||||||
|
|||||||||||
Tweet me!