this y super

2252 vistas

Las palabras clave this y super representan respectivamente referencias a la propia instancia y a la clase padre.

Veamos un ejemplo:



java
  1. public MiClase extends ClasePadre{
  2.   private String attribut;
  3.   /** podemos acceder a los constructores de la super-classe*/
  4.   public MiClase(String unValor) {
  5.       super(unValor);
  6.       // con esto llamamos al constructor de la clase padre
  7.   }
  8.  
  9.   /** también podemos acceder a los constructores de la propia clase */
  10.   public MiClase(String unValor){
  11.       this("un valor por defecto");
  12.       // aquà llamamos al constructor definido algo más arriba
  13.   }
  14.  
  15.   /** en general, la llamada a this suele ser superflua en la llamada a un método */
  16.   public void unMetodo(){}
  17.   public void dobleLlamada(){
  18.       // las dos líneas siguientes son equivalentes
  19.       this.unMetodo();
  20.       unMetodo();
  21.   }
  22.  
  23.   /** La llamada a this puede ser útil para diferenciar las variables de la clase de las del método */
  24.   public void ueMetodo(String atributo){
  25.       this.atributo = atributo;
  26.       // aquÃ, la variable de la clase toma por valor el de la variable pasada por parámetro al método
  27.   }
  28.  
  29.   /** también podemos hacer llamadas a métodos de la super-classe*/
  30.   public void otroMetodo() {
  31.       // podemos hacer algo antes de la llamada
  32.       super.otroMetodo();
  33.       // y, por supuesto, también después
  34.   }
  35. }



Estas dos palabras clave están muy ligadas al concepto de herencia.