perl | Polimorfismo en OOP

El polimorfismo es la capacidad de cualquier dato para ser procesado en más de una forma. La palabra misma indica el significado como polysignifica muchos y morphismsignifica tipos . El polimorfismo es uno de los conceptos más importantes del lenguaje de programación orientado a objetos. El uso más común del polimorfismo en la programación orientada a objetos ocurre cuando se usa una referencia de clase principal para referirse a un objeto de clase secundaria. Aquí veremos cómo representar cualquier función en muchos tipos y muchas formas.
Ejemplo de la vida real de polimorfismo, una persona al mismo tiempo puede tener diferentes roles que desempeñar en la vida. Como una mujer al mismo tiempo es madre, esposa, empleada e hija. Entonces, la misma persona debe tener muchas características, pero debe implementar cada una según la situación y la condición. El polimorfismo se considera una de las características importantes de la Programación Orientada a Objetos.

El polimorfismo es el poder clave de la programación orientada a objetos. Es muy importante que los lenguajes que no admiten polimorfismo no puedan anunciarse como lenguajes orientados a objetos. Los lenguajes que poseen clases pero no tienen la capacidad de polimorfismo se denominan lenguajes basados ​​en objetos. Por lo tanto, es muy vital para un lenguaje de programación orientado a objetos.
Es la capacidad de un objeto o referencia para tomar muchas formas en diferentes instancias. Implementa el concepto de sobrecarga de funciones, anulación de funciones y funciones virtuales.

El polimorfismo es una propiedad a través de la cual se puede enviar cualquier mensaje a objetos de múltiples clases, y cada objeto tiene la tendencia a responder de manera apropiada dependiendo de las propiedades de la clase.

Esto significa que el polimorfismo es el método en un lenguaje de programación orientado a objetos que hace diferentes cosas según la clase del objeto que lo llama. Por ejemplo, $square->area() devolverá el área de un cuadrado, pero $triangle->area() podría devolver el área de un triángulo. Por otro lado, $objeto->area() tendría que calcular el área según la clase a la que se llamó $objeto.

El polimorfismo se puede explicar mejor con la ayuda del siguiente ejemplo:

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();

Producción:

Para la primera salida, el método poly_example() definido en la clase B anula la definición heredada de la clase A y viceversa para la segunda salida. Esto permite agregar o ampliar la funcionalidad de cualquier paquete preexistente sin tener que volver a escribir la definición completa de toda la clase una y otra vez. Haciéndolo así fácil para el programador.

Publicación traducida automáticamente

Artículo escrito por ShikharMathur1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *