El polimorfismo es la capacidad de cualquier dato para ser procesado en más de una forma. La palabra misma indica el significado como significa muchos ysignifica 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