Polimorfismo
Em programação, o termo Polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos com o mesmo nome, mas podem ter diferentes implementações.
Para este exemplo vamos criar uma classe com o nome “Pessoa”, onde vamos definir o nosso método Viajar. Este método irá escrever uma mensagem no ecrã.
1
public class Pessoa
2
{
3
4
public Pessoa (){}
5
6
public virtual void Viajar()
7
{
8
Console.WriteLine ("Classe Pessoa\n\n");
9
}
10
11 }
Na declaração da nossa função colocamos “virtual” para indicarmos que este método pode ser redefinido.
De seguida criamos outra classe com o nome “Chefe”. Esta classe vai herdar da classe “Pessoa”
1
public class Chefe : Pessoa
2
{
3
public Chefe (){}
4
5
public override void Viajar() {
6
Console.WriteLine ("Classe Chefe\n\n");
7
}
8
9
}
Na declaração da função Viajar nesta classe, colocamos
“override” para indicarmos que estamos a redefinir este método.
Para testarmos no nosso main, vamos chamar os dois métodos, das duas classes:
1
Pessoa p = new Pessoa();
2
p.Viajar();
3
4
Chefe c = new Chefe();
5
c.Viajar();
Como podemos ver, cada objecto chama o seu método, e no caso da classe “Chefe”, este é um método reescrito.
Além disso, no método Viajar da classe “Chefe”, podemos também indicar que queremos executar também o método da classe “Pai”. Para tal basta escrever “base.Viajar();”
1
public override void Viajar() {
2
base.Viajar();
3
Console.WriteLine ("Classe Chefe\n\n");
4
}
No nosso main chamamos então apenas o método Viajar da classe
“Chefe”:
1
Chefe c = new Chefe();
2
c.Viajar();
Para vermos melhor o exemplo, vamos criar mais uma classe
“Empregado”, herdada também da classe “Pessoa”
1
public class Empregado : Pessoa
2
{
3
4
public Empregado (){}
5
6
public override void Viajar() {
7
Console.WriteLine ("Classe Empregado\n\n");
8
}
9
10 }
E no nosso main vamos chamar os três métodos, das nossas três classes. 1
Pessoa p = new