2 minuto(s) de lectura

Anotación - @Override

  • Su significado real de esta palabra al español sería
    • anular invalidar cancelar desactivar escuchar
  • Aunque muchos tutoriales , manuales y libros indican que la anotación @Override significa Sobrescritura

Función

  • Se utiliza para reescribir/sobrescribir los métodos que heredamos de una Super Clase , Clase Padre , Clase Base dentro de una Clase Hija que extienda dicha clase

Ejemplo de @Override

  • Heredamos el método toString de la Super Clase Object de la librería de Java y nos indica que podemos modificar su funcionamiento para que se ajusten a nuestras necesidades mediante la anotación @Override
 @Override
 public String toString() {
  // TODO Auto-generated method stub
  return super.toString();
 }
  • El método estándar toString() heredado de la Clase Object tiene esta sintaxis
// Nombre de la clase         Código Hexadecimal(Código Hash)
//             ↓                           ↓        ↓
 getClass().getName() + '@' + Integer.toHexString(hashCode())
  • Necesitamos modificarlo para que se adapten a nuestras necesidades

Ejemplo con Clase de @Override

// Ejemplo de Clase
public class EjemploOverride {

public static void main(String[] args) {
  // Instanciación de la Clase Coche
  Coche coche1 = new Coche(4, 4, "Mercedes", "300 SL");
  System.out.println(coche1.toString());
 }
}

// Clase coche
class Coche {
// Atributo de instancia de la Clase Coche
 private int ruedas = 0;
 private int puertas = 0;
 private String nombre = null;
 private String modelo = null;

 /**
  * Constructor por defecto
  */
 public Coche() {
  ruedas = 0;
  puertas = 0;
  nombre = null;
  modelo = null;
 }

 /**
  * Constructor parametrizado
  *
  * @param ruedas
  * @param puertas
  * @param nombre
  * @param modelo
  */
 public Coche(int ruedas, int puertas, String nombre, String modelo) {
  this.ruedas = ruedas;
  this.puertas = puertas;
  this.nombre = nombre;
  this.modelo = modelo;
 }

/**
* Procedimiento de instancia
*/
 public void setRuedas(int ruedas) {
  this.ruedas = ruedas;
 }

/**
* Método de instancia
*/
 public int getRuedas() {
  return ruedas;
 }

/**
* Procedimiento de instancia
*/
public void setPuertas(int puertas) {
  this.puertas = puertas;
 }

/**
* Método de Instancia
*/
 public int getPuertas() {
  return puertas;
 }

/**
* Procedimiento de instancia
*/
 public void setModelo(String modelo) {
  this.modelo = modelo;
 }

/**
* Método de instancia
*/
 public String getModelo() {
  return modelo;
 }

/**
* Procedimiento de instancia
*/
 public void setNombre(String nombre) {
  this.nombre = nombre;
 }

/**
* Método de instancia
*/
 public String getNombre() {
  return nombre;
 }

/**
* Método de instancia
* LA anotación @Override redefine el "método toString" heredado de la "clase Object" para que muestre los valores de los objetos de la "clase Coche" que los invoque y se muestren por consola
*  
*/
@Override
public String toString() {
 return "• Nombre: ".concat(getModelo()) + " Modelo: ".concat(getModelo()) + " Puertas: " + getPuertas()
    + " Ruedas: " + getRuedas();
}

Deja un comentario