Logotipo de Zephyrnet

Polimorfismo en Java con Ejemplos – 2023

Fecha:

Tabla de contenidos.

El polimorfismo es la capacidad de un objeto para adoptar diferentes formas. En Java, el polimorfismo se refiere a la capacidad de una clase para proporcionar diferentes implementaciones de un método, según el tipo de objeto que se pasa al método.

En pocas palabras, el polimorfismo en Java nos permite realizar la misma acción de muchas maneras diferentes. Cualquier objeto Java que pueda pasar más de una prueba IS-A es polimórfico en Java. Por lo tanto, todos los objetos de Java son polimórficos ya que ha pasado la prueba IS-A para su propio tipo y para la clase Object.

Este artículo también habla de dos tipos de polimorfismo en Java: polimorfismo de tiempo de compilación y polimorfismo de tiempo de ejecución, ejemplos de polimorfismo de Java, método de sobrecarga, anulación de métodos, por qué usar polimorfismo en Java, programación java, y muchos más.

¿Qué es el polimorfismo en Java?

Polimorfismo en Java es la tarea que realiza una sola acción de diferentes maneras.

Por lo tanto, los lenguajes que no admiten polimorfismo no son 'Lenguajes orientados a objetos', sino 'Lenguajes basados ​​en objetos'. Ada, por ejemplo, es uno de esos idiomas. Dado que Java admite polimorfismo, es un Lenguaje orientado a objetos.

El polimorfismo ocurre cuando hay herencia, es decir, muchas clases están relacionadas entre sí.

Herencia es una característica poderosa en Java. Herencia de Java permite que una clase adquiera las propiedades y atributos de otra clase. El polimorfismo en Java nos permite usar estas propiedades heredadas para realizar diferentes tareas. De esta manera, permitiéndonos lograr la misma acción de muchas maneras diferentes.

¿Qué es el polimorfismo?

La derivación de la palabra polimorfismo proviene de dos palabras griegas diferentes: poli y morfos. “Poly” significa numerosos y “Morphs” significa formas. Entonces, polimorfismo significa innumerables formas. El polimorfismo, por lo tanto, es una de las características más significativas de la Programación Orientada a Objetos.

Debe aprender los temas principales de Java

Ejemplos de la vida real de polimorfismo

Un individuo puede tener diferentes relaciones con diferentes personas. Una mujer puede ser madre, hija, hermana y amiga, todo al mismo tiempo, es decir, realiza otras conductas en diferentes situaciones.

El cuerpo humano tiene diferentes órganos. Cada órgano tiene una función diferente que realizar; el corazón es responsable del flujo sanguíneo, los pulmones de la respiración, el cerebro de la actividad cognitiva y los riñones de la excreción. Entonces tenemos una función de método estándar que funciona de manera diferente según el órgano del cuerpo. 

Ejemplo de polimorfismo en Java

Una superclase llamada "Formas" tiene un método llamado "área()". Las subclases de "Formas" pueden ser "Triángulo", "círculo", "Rectángulo", etc. Cada subclase tiene su forma de calcular el área. Usando medios de herencia y polimorfismo, las subclases pueden usar el método "área ()" para encontrar la fórmula del área para esa forma.

class Shapes { public void area() { System.out.println("The formula for area of "); }
}
class Triangle extends Shapes { public void area() { System.out.println("Triangle is ½ * base * height "); }
}
class Circle extends Shapes { public void area() { System.out.println("Circle is 3.14 * radius * radius "); }
}
class Main { public static void main(String[] args) { Shapes myShape = new Shapes(); // Create a Shapes object Shapes myTriangle = new Triangle(); // Create a Triangle object Shapes myCircle = new Circle(); // Create a Circle object myShape.area(); myTriangle.area(); myShape.area(); myCircle.area(); }
}

Salida:

La fórmula del área del Triángulo es ½ * base * altura
La fórmula para el área del círculo es 3.14 * radio * radio

class Shape { public void draw() { System.out.println("Drawing a shape"); }
} class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle"); }
} class Square extends Shape { @Override public void draw() { System.out.println("Drawing a square"); }
} class Main { public static void main(String[] args) { Shape s1 = new Circle(); Shape s2 = new Square(); s1.draw(); // Output: "Drawing a circle" s2.draw(); // Output: "Drawing a square" }
}

En este ejemplo, tenemos una clase base Shape con un solo método draw() que imprime "Dibujando una forma" en la consola. Luego creamos dos subclases, Circle y Square, que anulan el draw() método para imprimir "Dibujando un círculo" y "Dibujando un cuadrado" respectivamente.

En main método, creamos dos instancias del Shape clase, s1 y s2, que en realidad son instancias de la Circle y Square subclases. Cuando llamamos a la draw() en estos objetos, se llama a la implementación correcta según el tipo real del objeto, esto es polimorfismo en tiempo de ejecución. El programa generará: "Dibujando un círculo" y "Dibujando un cuadrado"

En este ejemplo, el draw() El método se anula en las subclases, y esto permite que el programa determine qué método usar en tiempo de ejecución. Esto se conoce como polimorfismo en tiempo de ejecución o polimorfismo dinámico, porque en tiempo de ejecución la JVM determina el tipo real del objeto y llama al método correspondiente.

Lea también Conceptos de programación orientada a objetos en Java

Tipos de polimorfismo

Puede realizar polimorfismo en Java a través de dos métodos diferentes:

  1. Sobrecarga de métodos
  2. Anulación de método

¿Qué es la sobrecarga de métodos en Java?

Método de sobrecarga es el proceso que puede crear múltiples métodos del mismo nombre en la misma clase, y todos los métodos funcionan de diferentes maneras. La sobrecarga de métodos ocurre cuando hay más de un método con el mismo nombre en la clase.

Ejemplo de sobrecarga de métodos en Java

class Shapes { public void area() { System.out.println("Find area "); }
public void area(int r) { System.out.println("Circle area = "+3.14*r*r); } public void area(double b, double h) { System.out.println("Triangle area="+0.5*b*h); }
public void area(int l, int b) { System.out.println("Rectangle area="+l*b); } } class Main { public static void main(String[] args) { Shapes myShape = new Shapes(); // Create a Shapes object myShape.area(); myShape.area(5); myShape.area(6.0,1.2); myShape.area(6,2); }
}

Salida:

Buscar área
Área del círculo = 78.5
área del triángulo = 3.60
área del rectángulo = 12

¿Qué es la anulación de métodos en Java?

La anulación de métodos es el proceso cuando la subclase o una clase secundaria tiene el mismo método declarado en la clase principal.

Ejemplo de anulación de métodos en Java

class Vehicle{ //defining a method void run(){System.out.println("Vehicle is moving");} } //Creating a child class class Car2 extends Vehicle{ //defining the same method as in the parent class void run(){System.out.println("car is running safely");} public static void main(String args[]){ Car2 obj = new Car2();//creating object obj.run();//calling method } } 

Salida:

El coche está funcionando con seguridad

Además, el polimorfismo en Java se puede clasificar en dos tipos, es decir:

  1. Polimorfismo estático/en tiempo de compilación
  2. Polimorfismo dinámico/en tiempo de ejecución

¿Qué es el polimorfismo en tiempo de compilación en Java?

Compilar polimorfismo de tiempo en Java también se conoce como Polimorfismo estático. Además, la llamada al método se resuelve en tiempo de compilación. El polimorfismo en tiempo de compilación se logra mediante Sobrecarga de métodos. Este tipo de polimorfismo también se puede lograr a través de Sobrecarga del operador. Sin embargo, Java no admite la sobrecarga de operadores.

La sobrecarga de métodos se produce cuando una clase tiene varios métodos con el mismo nombre, pero el número, los tipos y el orden de los parámetros y el tipo de retorno de los métodos son diferentes. Java permite al usuario la libertad de usar el mismo nombre para varias funciones, siempre que pueda distinguirlas por el tipo y el número de parámetros. Consulte algunas de las preguntas importantes sobre el polimorfismo en tiempo de ejecución en preguntas de la entrevista de java.

Ejemplo de polimorfismo en tiempo de compilación en Java

Haremos sumas en Java y entenderemos el concepto de polimorfismo en tiempo de compilación usando restar() 

package staticPolymorphism; public class Addition { void sum(int a, int b) { int c = a+b; System.out.println(“ Addition of two numbers :” +c); } void sum(int a, int b, int e) { int c = a+b+e; System.out.println(“ Addition of three numbers :” +c); } public static void main(String[] args) { Addition obj = new Addition(); obj.sum ( 30,90); obj.sum(45, 80, 22); } }

La salida del programa será: 

Suma de dos números: 120 

Suma de tres números: 147 

En este programa, el método sum() se sobrecarga con dos tipos a través de diferentes parámetros. 

Este es el concepto básico del polimorfismo en tiempo de compilación en Java, donde podemos realizar varias operaciones utilizando varios métodos con el mismo nombre.

¿Qué es el polimorfismo en tiempo de ejecución en Java?

Polimorfismo en tiempo de ejecución en Java también se conoce popularmente como Enlace dinámico o envío de método dinámico. En este proceso, la llamada a un método invalidado se resuelve dinámicamente en tiempo de ejecución en lugar de en tiempo de compilación. Puede lograr el polimorfismo en tiempo de ejecución a través de Anulación de método.

La anulación de métodos se realiza cuando un elemento secundario o una subclase tiene un método con el mismo nombre, parámetros y tipo de retorno que el elemento principal o la superclase; entonces esa función anula la función en la superclase. En términos más simples, si la subclase proporciona su definición a un método ya presente en la superclase; entonces se dice que esa función en la clase base está anulada.

Además, debe tenerse en cuenta que el polimorfismo en tiempo de ejecución solo se puede lograr a través de funciones y no de miembros de datos. 

La anulación se realiza mediante el uso de una variable de referencia de la superclase. El método que se llamará se determina en función del objeto al que hace referencia la variable de referencia. Esto también se conoce como Upcasting.

El upcasting tiene lugar cuando la variable de referencia de la clase principal hace referencia al objeto de la clase secundaria. Por ejemplo:

class A{} class B extends A{} A a=new B(); //upcasting

Ejemplos de polimorfismo en tiempo de ejecución en Java

Ejemplo 1:

En este ejemplo, estamos creando una superclase Animal y tres subclases, Herbívoros, Carnívoros y Omnívoros. Las subclases amplían la superclase y anulan su método eat(). Llamaremos al método eat() por la variable de referencia de la clase Padre, es decir, la clase Animal. Como se refiere al objeto de la clase base y el método de la clase base anula el método de la superclase; el método de la clase base se invoca en tiempo de ejecución. Como Java Virtual Machine o la JVM y no el compilador determina la invocación del método, es, por lo tanto, un polimorfismo en tiempo de ejecución.

class Animal{ void eat(){
System.out.println("Animals Eat");
} } class herbivores extends Animal{ void eat(){
System.out.println("Herbivores Eat Plants");
} }
class omnivores extends Animal{ void eat(){
System.out.println("Omnivores Eat Plants and meat");
} }
class carnivores extends Animal{ void eat(){
System.out.println("Carnivores Eat meat");
} }
class main{ public static void main(String args[]){ Animal A = new Animal(); Animal h = new herbivores(); //upcasting Animal o = new omnivores(); //upcasting Animal c = new carnivores(); //upcasting A.eat(); h.eat(); o.eat(); c.eat(); } } 

Salida:

Los animales comen
Los herbívoros comen plantas
Los omnívoros comen plantas y carne
Los carnivoros comen carne

Ejemplo 2:

En este ejemplo, estamos creando una superclase Hillstations y tres subclases Manali, Mussoorie, Gulmarg. Las subclases amplían la superclase y anulan su ubicación () y el método celebrityfor (). Llamaremos al método location() y famousfor() por la clase Parent', es decir, la clase Hillstations. Como se refiere al objeto de la clase base y el método de la clase base anula el método de la superclase; el método de la clase base se invoca en tiempo de ejecución. Además, como Java Virtual Machine o JVM y no el compilador determina la invocación del método, es polimorfismo en tiempo de ejecución.

class Hillstations{ void location(){
System.out.println("Location is:");
} void famousfor(){
System.out.println("Famous for:");
} } class Manali extends Hillstations { void location(){
System.out.println("Manali is in Himachal Pradesh");
} void famousfor(){
System.out.println("It is Famous for Hadimba Temple and adventure sports");
} }
class Mussoorie extends Hillstations { void location(){
System.out.println("Mussoorie is in Uttarakhand");
} void famousfor(){
System.out.println("It is Famous for education institutions");
} }
class Gulmarg extends Hillstations { void location(){
System.out.println("Gulmarg is in J&K");
} void famousfor(){
System.out.println("It is Famous for skiing");
} }
class main{ public static void main(String args[]){ Hillstations A = new Hillstations(); Hillstations M = new Manali(); Hillstations Mu = new Mussoorie(); Hillstations G = new Gulmarg(); A.location();
A.famousfor(); M.location();
M.famousfor(); Mu.location();
Mu.famousfor(); G.location();
G.famousfor(); } } 

Salida:

La ubicación es:
Famoso por:
Manali está en Himachal Pradesh
Es famoso por el templo de Hadimba y los deportes de aventura.
Mussoorie está en Uttarakhand
Es famoso por las instituciones educativas.
Gulmarg está en J&K
Es famoso por esquiar.

Ejemplo de polimorfismo en tiempo de ejecución en Java

Crearemos dos clases Car e Innova, la clase Innova extenderá la clase car y anulará su método run().

class Car { void run() { System.out.println(“ running”); } }
class innova extends Car { void run(); { System.out.println(“ running fast at 120km”); } public static void main(String args[]) { Car c = new innova(); c.run(); } } 

La salida del siguiente programa será; 

Corriendo rápido en 120 km. 

Otro ejemplo de polimorfismo en tiempo de ejecución en Java

Ahora, verifiquemos si podemos lograr polimorfismo en tiempo de ejecución a través de miembros de datos. 

class car { int speedlimit = 125; } class innova extends car { int speedlimit = 135; public static void main(String args[]) { car obj = new innova(); System.out.println(obj.speedlimit);
}

La salida del siguiente programa será: 

125 

Esto implica claramente que no podemos lograr el polimorfismo en tiempo de ejecución a través de miembros de datos. En resumen, se anula un método, no los miembros de datos.

Polimorfismo en tiempo de ejecución con herencia multinivel

class grandfather { void swim() { System.out.println(“ Swimming”); } } class father extends grandfather { void swim() { System.out.println(“ Swimming in river”); } } class son extends father { void swim() { System.out.println(“ Swimming in pool”);
} public static void main(String args[]) { grandfather f1,f2,f3; f1 =new grandfather(); f2 = new father(); f3 = new son(); f1.swim(); f2.swim(); f3.swim(): } } 

La salida del siguiente programa será: 

Natación, nadando en el rio, Nadar en la piscina

Otro ejemplo de polimorfismo en tiempo de ejecución con herencia multinivel

class soundAnimal { public void Sound() { System.out.println("Different sounds of animal"); }
} class buffalo extends soundAnimal { public void Sound() { System.out.println("The buffalo sound- gho,gho"); } } class snake extends soundAnimal { public void Sound() { System.out.println("The snake sound- his,his"); } } class tiger extends soundAnimal
{ public void Sound() { System.out.println("The tiger sounds- roooo, rooo"); } } public class Animal Main { public static void main(String[] args) { soundAnimal Animal = new soundAnimal(); soundAnimal buffalo = new buffalo(); soundAnimal snake = new snake(); soundAnimal tiger = new tiger(); Animal.Sound(); buffalo.Sound();
snake.Sound(); tiger.Sound(); } } 

La salida del siguiente programa será; 

El sonido del búfalo-gho,gho 

El sonido de la serpiente- suyo, suyo 

El sonido del tigre- roooo, roooo 

Esperamos que tenga una idea sobre el tiempo de ejecución y el polimorfismo en tiempo de compilación.

Subtipos polimórficos

Subtipo básicamente significa que un subtipo puede servir como subtipo de otro tipo, ¿suena un poco complicado? 

Entendamos esto con la ayuda de un ejemplo:

Suponiendo que tenemos que dibujar algunas formas arbitrarias, podemos introducir una clase llamada 'forma' con un método draw(). Al anular draw() con otras subclases como círculo, cuadrado, rectángulo, trapecio, etc., introduciremos una matriz de tipo 'forma' cuyos elementos almacenan referencias que se referirán a las referencias de la subclase 'forma'. La próxima vez, llamaremos a draw(), se llamará al método draw() de todas las instancias de formas.

Este polimorfismo de subtipo generalmente se basa en upcasting y enlace tardío. Una conversión en la que convierte la jerarquía de herencia de un subtipo a un supertipo se denomina conversión ascendente.

Para llamar a métodos de instancias no finales, usamos enlace tardío. En resumen, un compilador no debe realizar ninguna verificación de argumentos, verificación de tipos, llamadas a métodos, etc., y dejar todo en tiempo de ejecución. 

¿Qué es el polimorfismo en la programación?

El polimorfismo en la programación se define como el uso de un solo símbolo para representar múltiples tipos diferentes.

¿Qué son las variables de polimorfismo?

A variable polimórfica se define como una variable que puede contener valores de diferentes tipos durante el curso de la ejecución.

¿Por qué usar polimorfismo en Java?

El polimorfismo en Java hace posible escribir un método que puede procesar correctamente muchos tipos diferentes de funcionalidades que tienen el mismo nombre. También podemos ganar consistencia en nuestro código usando polimorfismo.

Ventajas del polimorfismo en Java

  1. Proporciona reutilización al código. Las clases que se escriben, prueban e implementan se pueden reutilizar varias veces. Además, ahorra mucho tiempo al codificador. Además, el puede cambiar el código sin afectar el código original.
  2. Una sola variable se puede utilizar para almacenar múltiples valores de datos. El valor de una variable que hereda de la superclase a la subclase se puede cambiar sin cambiar el valor de esa variable en la superclase; o cualquier otra subclase.
  3. Con menos líneas de código, se vuelve más fácil para el programador depurar el código.

Características del polimorfismo

El polimorfismo tiene muchas otras características además de la sobrecarga de métodos y la anulación de métodos. Incluyen:

  • Coerción
  • Sobrecarga interna del operador
  • Variables o parámetros polimórficos

1. Coacción

La coerción trata de convertir implícitamente un tipo de objeto en un nuevo objeto de un tipo diferente. Además, esto se hace automáticamente para evitar errores tipográficos en el código. 

Lenguajes de programación como C, java, etc. admiten la conversión de valor de un tipo de datos a otro tipo de datos. Las conversiones de tipos de datos son de dos tipos, es decir, implícitas y explícitas. 

La conversión de tipo implícito se realiza automáticamente en el programa y este tipo de conversión también se denomina coerción. 

Por ejemplo, si un operando es un número entero y otro está en coma flotante, el compilador convierte implícitamente el número entero en un valor flotante para evitar errores de tipo.

Ejemplo:

class coercion { public static void main(String[] args) { Double area = 3.14*5*7;
System.out.println(area);
String s = "happy";
int x=5;
String word = s+x;
System.out.println(word); }
}

Salida:

109.9
happy5

2. Sobrecarga interna del operador

En la sobrecarga de operadores, un operador o símbolo se comporta en más de un sentido según el contexto de entrada o el tipo de operandos. Es una característica del polimorfismo estático. Aunque Java no admite la sobrecarga de operadores definidos por el usuario como C++, donde el usuario puede definir cómo funciona un operador para diferentes operandos, hay pocos casos en los que Java sobrecarga internamente a los operadores.

La sobrecarga de operadores es el concepto de usar el operador según su elección. Por lo tanto, un símbolo de operador o nombre de método se puede utilizar como un tipo 'definido por el usuario' según los requisitos. 

Por ejemplo, '+' se puede utilizar para realizar la suma de números (mismo tipo de datos) o para la concatenación de dos o más cadenas.

En el caso de +, puede usarse para suma y también para concatenación.

Por ejemplo:

class coercion { public static void main(String[] args) { String s = "happy";
String s1 = "world";
int x=5;
int y=10; System.out.println(s+s1);
System.out.println(x+y); }
}

salida:

mundo feliz
15

Del mismo modo, los operadores como! &, y | también están en la posición de sobrecarga para operaciones lógicas y bit a bit. En ambos casos, el tipo de argumento decidirá cómo interpretará el operador.

 3. Variables polimórficas o parámetros

En Java, las variables de objeto o instancia representan las variables polimórficas. Esto se debe a que cualquier variable de objeto de una clase puede tener una relación IS-A con sus propias clases y subclases.

La Variable Polimórfica es una variable que puede contener valores de diferentes tipos durante el tiempo de ejecución.

El polimorfismo paramétrico especifica que, durante la declaración de clase, un nombre de campo puede asociarse con diferentes tipos y un nombre de método puede asociarse con diferentes parámetros y tipos de retorno.

Por ejemplo:

class Shape
{
public void display()
{
System.out.println("A Shape.");
}
}
class Triangle extends Shape
{
public void display()
{
System.out.println("I am a triangle.");
}
}
class Main{
public static void main(String[] args)
{
Shape obj;
obj = new Shape();
obj.display();
obj = new Triangle();
obj.display();
}
}

Salida:

Una forma.
Soy un triangulo.

Aquí, el objeto obj es una variable polimórfica. Esto se debe a que el mismo objeto de la superclase hace referencia a la clase principal (Forma) ya la clase secundaria (Triángulo). 

Problemas con polimorfismo 

Con muchas ventajas, también hay algunas desventajas del polimorfismo.

  • El polimorfismo es bastante desafiante durante la implementación.
  • Tiende a reducir la legibilidad del código.
  • También plantea algunos problemas graves de rendimiento en tiempo real.

Identificación de tipos durante el downcasting 

La conversión a la baja se denomina conversión a un tipo secundario o conversión de un tipo común a un tipo individual.

Por lo tanto, usamos downcasting cada vez que necesitamos acceder o comprender el comportamiento de los subtipos. 

Ejemplo, 

Este es un ejemplo jerárquico. 

Comida> Vegetales> Ladyfinger, Tomate 

Aquí, tomate y melindre son dos subclases. 

En downcasting, restringimos el tipo de objetos, lo que significa que estamos convirtiendo el tipo común en tipo individual. 

Vegetal vegetal = nuevo Tomate(); 

Tomate castedTomato = (Tomate) verdura; 

Aquí estamos convirtiendo un tipo común en un tipo individual, una superclase en una subclase, lo que no es posible directamente en Java.

Le decimos explícitamente al compilador cuál es el tipo de tiempo de ejecución del objeto.

Problema de clase base frágil 

El problema de la clase base frágil no es más que un problema arquitectónico fundamental. 

A veces, el diseño inadecuado de una clase principal puede llevar a una subclase de una superclase a usar la superclase de formas imprevistas. 

La fragilidad de la herencia conducirá a códigos rotos incluso cuando se cumplan todos los criterios. 

Este problema arquitectónico se denomina problema de clase base frágil en sistemas y lenguajes de programación orientados a objetos. 

Básicamente, la razón del problema de la base frágil es que el desarrollador de la clase base no tiene idea del diseño de la subclase. Todavía no hay solución para este problema. 

Conclusión

Esperamos que tenga una idea básica del polimorfismo en Java y cómo lo usamos, así como los problemas relacionados con ellos. 

Por lo tanto, esto nos lleva al final del blog sobre Polimorfismo en Java. Además, para aprender más sobre programación y otros conceptos relacionados, consulte los cursos sobre Gran Academia de Aprendizaje y Programas PG en Ingeniería de Software.  

Además, si se está preparando para entrevistas, consulte estos Preguntas de entrevista para Java para hacerlo como un profesional.

[Contenido incrustado]

Entonces, no detengas tu viaje de aprendizaje. Además, no te olvides de mejorar y volver a capacitarte. Sigue explorando y sigue aprendiendo.

Preguntas frecuentes

¿Qué es el polimorfismo con el ejemplo?

Una de las características de los OOP que nos permite realizar una misma acción de varias formas se conoce como polimorfismo en Java. Por ejemplo, tenemos una clase Animal con un método sonido(). Esta es una clase genérica, por lo que no podemos darle una implementación como: Meow, Oink, Roar, etc. 

¿Cuáles son los 4 tipos de polimorfismo?

Los cuatro tipos de polimorfismo son:
– Tiempo de ejecución o polimorfismo de subtipo
– Sobrecarga o polimorfismo paramétrico
– Polimorfismo en tiempo de compilación o ad hoc
– Polimorfismo de fundición o coerción

¿Qué es el polimorfismo en OOP?

Uno de los conceptos centrales de OOP o programación orientada a objetos, el polimorfismo describe situaciones en las que una cosa en particular ocurre en diferentes formas. En informática, el polimorfismo describe un concepto que nos permite acceder a diferentes tipos de objetos a través de la misma interfaz.

¿Qué es anular en OOP?

En la programación orientada a objetos, la anulación es una función que permite que una subclase o clase secundaria proporcione una implementación específica de un método que ya proporciona una de sus superclases o clases principales.

¿Qué es anular vs sobrecargar?

Si dos o más métodos en la misma clase tienen el mismo nombre, pero tienen diferentes parámetros, esto se conoce como sobrecarga. En el caso de Overriding, se encuentra una firma de método (nombre y parámetros) en la misma superclase y la clase secundaria.

Da el primer paso para alcanzar tus metas inscribiéndote en este curso de ingeniería de software ¡¡¡ahora!!!

punto_img

Información más reciente

punto_img