Iniciar sesión

Polimorfismo en Java

Sobrecarga vs. sobrescritura

Unidad: Programación Orientada a Objetos Lección 4 de 6 Gratis
🎭
Polimorfismo
Polimorfismo significa "muchas formas": un mismo método se comporta distinto según el objeto que lo ejecuta. Hay dos formas de lograrlo:
Sobrecarga (overload) mismo nombre, distintos parámetros, en la misma clase. Se decide en tiempo de compilación.
Sobrescritura (override) una subclase redefine un método de su superclase, con @Override. Se decide en tiempo de ejecución.
class Animal { void hacerSonido() { System.out.println("..."); } } class Perro extends Animal { @Override void hacerSonido() { System.out.println("Guau"); } // sobrescribe }

Pon a prueba lo que aprendiste

Concepto

¿Qué significa polimorfismo?

  1. AUn mismo método se comporta distinto según el objeto que lo ejecuta
  2. BQue Java permite herencia múltiple
  3. CQue un atributo puede cambiar de tipo
  4. DQue una clase puede tener varios constructores
Ver respuesta
A) Un mismo método se comporta distinto según el objeto que lo ejecuta 'muchas formas': el mismo nombre de método produce comportamientos distintos.
Sobrecarga vs sobrescritura

¿Cuál es la diferencia principal entre sobrecarga y sobrescritura?

  1. ASobrecarga solo aplica a constructores
  2. BSobrecarga es mismo nombre con distintos parámetros en la misma clase; sobrescritura redefine un método heredado
  3. CSon exactamente lo mismo con otro nombre
  4. DSobrescritura solo funciona con métodos static
Ver respuesta
B) Sobrecarga es mismo nombre con distintos parámetros en la misma clase; sobrescritura redefine un método heredado Sobrecarga cambia la firma en la misma clase; sobrescritura redefine el comportamiento en una subclase.
@Override

¿Para qué sirve la anotación @Override?

  1. AHace que el método sea más rápido
  2. BEs obligatoria para poder heredar
  3. CLe indica al compilador que ese método debe sobrescribir uno de la superclase (y avisa si no coincide)
  4. DConvierte el método en static
Ver respuesta
C) Le indica al compilador que ese método debe sobrescribir uno de la superclase (y avisa si no coincide) @Override es una verificación: si la firma no coincide con ningún método de la superclase, da error de compilación.

🎯 Practica esta lección completa

Ejercicios de completar código, ordenar bloques y respuesta libre. Ganas XP y mantienes tu racha.

Practicar gratis, sin registrarte Entras como invitado directo a esta lección. Sin tarjeta.