Perl | Polimorfismo em OOPs
Polimorfismo é a capacidade de qualquer dado ser processado em mais de uma forma. A própria palavra indica o significado como poly
meio muitos e morphism
meios tipos . O polimorfismo é um dos conceitos mais importantes da linguagem de programação orientada a objetos. O uso mais comum de polimorfismo na programação orientada a objetos ocorre quando uma referência de classe pai é usada para se referir a um objeto de classe filho. Aqui veremos como representar qualquer função em muitos tipos e muitas formas.
Exemplo da vida real de polimorfismo, uma pessoa ao mesmo tempo pode ter diferentes papéis a desempenhar na vida. Como uma mulher ao mesmo tempo é mãe, esposa, empregada e filha. Portanto, a mesma pessoa deve ter muitos recursos, mas deve implementar cada um de acordo com a situação e a condição. O polimorfismo é considerado uma das características importantes da Programação Orientada a Objetos.
O polimorfismo é o principal poder da programação orientada a objetos. É muito importante que linguagens que não suportam polimorfismo não possam se anunciar como linguagens orientadas a objetos. As linguagens que possuem classes, mas não têm capacidade de polimorfismo, são chamadas de linguagens baseadas em objetos. Portanto, é muito vital para uma linguagem de programação orientada a objetos.
É a capacidade de um objeto ou referência assumir muitas formas em diferentes instâncias. Ele implementa o conceito de sobrecarga de função, sobreposição de função e funções virtuais.
O polimorfismo é uma propriedade por meio da qual qualquer mensagem pode ser enviada a objetos de várias classes, e todo objeto tem a tendência de responder de maneira apropriada dependendo das propriedades da classe.
Isso significa que o polimorfismo é o método em uma linguagem de programação orientada a objetos que faz coisas diferentes dependendo da classe do objeto que o chama. Por exemplo, $square-> area() retornará a área de um quadrado, mas $triangle-> area() pode retornar a área de um triângulo. Por outro lado, $object-> area() teria que calcular a área de acordo com a qual a classe $object foi chamada.
O polimorfismo pode ser melhor explicado com a ajuda do seguinte exemplo:
use warnings;
# Creating class using package
package A;
# Constructor creation
sub new
{
# shift will take package name 'vehicle'
# and assign it to variable 'class'
my $class = shift;
my $self = {
'name' => shift,
'roll_no' => shift
};
sub poly_example
{
print("This corresponds to class A\n");
}
};
package B;
# The @ISA array contains a list
# of that class's parent classes, if any
my @ISA = (A);
sub poly_example
{
print("This corresponds to class B\n");
}
package main;
B->poly_example();
A->poly_example();
Saída:
Para a primeira saída, o método poly_example() definido na classe B substitui a definição que foi herdada da classe A e vice-versa para a segunda saída. Isso permite adicionar ou estender a funcionalidade de qualquer pacote pré-existente sem reescrever toda a definição de toda a classe novamente e novamente. Facilitando assim para o programador.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva