Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Dominando la sobrescritura de métodos en Java

Dominando la sobrescritura de métodos en Java

Explora la sobrescritura de métodos en Java con ejemplos prácticos, reglas clave y la poderosa palabra clave super.

La semana pasada cubrimos la herencia, la característica central de POO que permite a una subclase heredar propiedades y comportamientos de una superclase. Ahora nos sumergiremos en la sobrescritura de métodos —cuando una subclase proporciona su propia implementación de un método ya definido en su clase padre.

Ejemplo 1: Sobrescritura básica de método

class Animal { public void mostrarInfo() { System.out.println("Soy un animal."); } } class Perro extends Animal { @Override public void mostrarInfo() { System.out.println("Soy un perro."); } } class Main { public static void main(String[] args) { Perro p1 = new Perro(); p1.mostrarInfo(); } } 

Salida:

Soy un perro. 

En este fragmento, tanto Animal como Perro declaran mostrarInfo(). Cuando la instancia de Perro lo llama, se ejecuta la implementación de la subclase, demostrando la sobrescritura.

Observa la anotación @Override. Le dice al compilador que el método debe reemplazar la versión de la superclase; si las firmas no coinciden, el compilador lanza un error. Aunque no es obligatoria, es una mejor práctica que protege contra errores accidentales.

Dominando la sobrescritura de métodos en Java

Reglas de sobrescritura en Java

Usando super para invocar un método de la superclase

¿Podemos seguir llamando al método del padre después de sobrescribir? Absolutamente —usa la palabra clave super.

Ejemplo 2: Aprovechando super

class Animal { public void mostrarInfo() { System.out.println("Soy un animal."); } } class Perro extends Animal { public void mostrarInfo() { super.mostrarInfo(); System.out.println("Soy un perro."); } } class Main { public static void main(String[] args) { Perro p1 = new Perro(); p1.mostrarInfo(); } } 

Salida:

Soy un animal. Soy un perro. 

Aquí, Perro primero llama a Animal.mostrarInfo() vía super, luego añade su propio mensaje.

Recuerda, los constructores no se heredan, así que no hay "sobrescritura de constructores". Sin embargo, una subclase puede invocar un constructor de la superclase con super() —ver la guía de palabra clave super en Java.

Niveles de acceso al sobrescribir

Los métodos sobrescritos pueden diferir en visibilidad, pero solo de forma que amplíen el acceso.

Si un método de la superclase es protected, una subclase puede declararlo protected o public, pero no private.

Ejemplo 3: Cambiando visibilidad

class Animal { protected void mostrarInfo() { System.out.println("Soy un animal."); } } class Perro extends Animal { public void mostrarInfo() { System.out.println("Soy un perro."); } } class Main { public static void main(String[] args) { Perro p1 = new Perro(); p1.mostrarInfo(); } } 

Salida:

Soy un perro. 

Como public ofrece acceso más amplio que protected, la sobrescritura es válida.

Sobrescritura de métodos abstractos

Las clases abstractas a menudo declaran métodos sin cuerpo. Cualquier subclase concreta debe proporcionar una implementación; de lo contrario, el compilador marca un error. Exploraremos las clases abstractas en profundidad en un futuro tutorial.

Java

  1. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  2. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
  3. Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
  4. Tipos de anotaciones en Java: Guía completa de predefinidas, personalizadas y meta‑anotaciones
  5. Método Java String length(): Cómo obtener el tamaño de un String (Ejemplo)
  6. Dominando Java String.indexOf(): Localizar subcadenas y ejemplos prácticos
  7. Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
  8. Dominando el método compareTo() de Java String: Sintaxis, casos de uso y ejemplos prácticos
  9. Método Java String.contains(): Cómo comprobar subcadenas – Ejemplos prácticos
  10. Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
  11. Dominando el reemplazo de Strings en Java: replace(), replaceAll() y replaceFirst() explicados