terça-feira, 16 de março de 2010

[C#] Trabalhando com classes abstratas e polimorfismo

Dificuldade: Médio
Olá!
Este é o primeiro tutorial sobre C# que posto neste blog, e para iniciar, vou começar com duas coisas simples, porém extremamente úteis: classses abstratas e polimorfismo.

Classe abstrata:
Uma classe onde você não define as funções e não tem um construtor, mas pode ter classes filhas onde define-se as funções.
Exemplo:
abstract class Animal
{
abstract public string Cor();
abstract public void Falar();
}
class Cachorro : Animal
{
public Cachorro()
{

}
public override string Cor()
{
return "Marrom";
}
public override void Falar()
{
Console.WriteLine("Au Au");
}
} 

Polimorfismo:
Você pode usar uma classe derivada de outra para executar x função, por exemplo, Falar.
Para o exemplo a seguir, use o exemplo acima.
Exemplo:



class Gato : Animal
{
public Gato()
{

}
public override string Cor()
{
return "Branco";
}
public override void Falar()
{
Console.WriteLine("Miau");
}

class Funcoes
{
public static void Falar(Animal animal)
{
animal.Falar();
}
public static string PegarCor(Animal animal)
{
return animal.Cor();
}

Agora, no seu aplicativo de console (para testes), insira o seguinte código:

Console.WriteLine(Funcoes.PegarCor(new Gato()));
Console.WriteLine(Funcoes.PegarCor(new Cachorro()));
Funcoes.Falar(new Gato());
Funcoes.Falar(new Cachorro());

O resultado deve sair parecido com isto:
Branco
Marrom
Miau
Au Au 

É isto, espero que tenham gostado!

Nenhum comentário:

Postar um comentário