Escala | Polimorfismo

El polimorfismo es la capacidad de cualquier dato para ser procesado en más de una forma. La palabra misma indica el significado como escuela politécnicasignifica muchos ymorfismosignifica tipos. Scala implementa el polimorfismo a través de funciones virtuales, funciones sobrecargadas y operadores sobrecargados. 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 padre para referirse a un objeto de clase hijo. 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.
Hay dos formas principales de polimorfismo:

  • Subtipificación: al subtipificar, la instancia de una subclase se puede pasar a una clase base
  • Genéricos: Por tipo de parametrización se crean instancias de una función o clase.

A continuación se muestran algunos ejemplos:
Ejemplo #1:

// Scala program to shows the usage of 
// many functions with the same name 
class example 
{ 
      
    // This is the first function with the name fun
    def func(a:Int) 
    { 
        println("First Execution:" + a); 
    } 
      
    // This is the second function with the name fun
    def func(a:Int, b:Int) 
    { 
        var sum = a + b; 
        println("Second Execution:" + sum); 
    } 
      
    // This is the first function with the name fun
    def func(a:Int, b:Int, c:Int) 
    { 
        var product = a * b * c; 
        println("Third Execution:" + product); 
    } 
} 
  
// Creating object
object Main      
{ 
    // Main method
    def main(args: Array[String]) 
    {
        // Creating object of example class
        var ob = new example(); 
        ob.func(120); 
        ob.func(50, 70);
        ob.func(10, 5, 6);
    } 
} 

Producción:

First Execution:120
Second Execution:120
Third Execution:300

En el ejemplo anterior tenemos tres funciones cuyo nombre es el mismo (func) pero los parámetros son diferentes.

Ejemplo #2:

// Scala program to illustrate polymorphism
// concept
class example2
{ 
    // Function 1 
    def func(vehicle:String, category:String)     
    { 
        println("The Vehicle is:" + vehicle); 
        println("The Vehicle category is:" + category); 
    } 
      
    // Function 2 
    def func(name:String, Marks:Int)      
    { 
        println("Student Name is:" + name); 
        println("Marks obtained are:" + Marks); 
    } 
      
    // Function 3 
    def func(a:Int, b:Int) 
    {
        var Sum = a + b;
        println("Sum is:" + Sum)
    }
      
} 
  
// Creating object
object Main 
{ 
    // Main method
    def main(args: Array[String]) 
    { 
        var A = new example2(); 
        A.func("swift", "hatchback"); 
        A.func("honda-city", "sedan"); 
        A.func("Ashok", 95);
        A.func(10, 20);
    } 
} 

Producción:

The Vehicle is:swift
The Vehicle category is:hatchback
The Vehicle is:honda-city
The Vehicle category is:sedan
Student Name is:Ashok
Marks obtained are:95
Sum is:30

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 *