Primeros pasos con Java, herencia

Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0

Java permite el empleo de la herencia , característica muy potente que permite definir una clase tomando como base a otra clase ya existente. Esto es una de las bases de la reutilización de código, en lugar de copiar y pegar.

En java, como ya vimos la herencia se especifica agregando la claúsula extends después del nombre de la clase. En la claúsula extends indicaremos el nombre de la clase base de la cuál queremos heredar.

Al heredar de una clase base, heredaremos tanto los atributos como los métodos, mientras que los constructores son utilizados, pero no heredados.
Ejemplo:
Construyamos la clase Taxista.java con el siguiente código:

public class Taxista extends Persona {
     private int nLicencia;
     public Taxista(String nombre, String nLicencia) {
          super(nombre);  // Llamada al constructor de la clase base.
          this.nLicencia = licencia;
     }
     public void setNLicencia(int num) {
          nLicencia = num;
     }
     public int getLicencia() {
          return nLicencia;
     }
}

Como se puede ver en el ejemplo, en este código hemos añadido a la cabecera de la clase la palabra extends, y detrás hemos puesto otra clase. Así es como indicamos que la clase Taxista debe heredar de la clase Persona.
Más abajo encontramos el constructor, que lo debemos escribir, ya que no es uno de los componentes de la clase que se heredan. En él hemos llamado al constructor de la clase de la que se ha heredado mediante la instrucción super(), así hemos pasado el nombre al constructor de la clase base: super(nombre);
Aquí nos encontramos con la palabra this, con ella indicamos que lo que viene después del punto se refiere al elemento de la clase, o del contexto en el que nos encontremos, y así decimos que el this.nLicencia se refiere a nLicencia de la clase, y lo igualamos al nLicencia que nos ha venido como parámetro en la declaración del nuevo objeto, mediante el constructor.

Un dato importante a tener en cuenta en java es que sólo permite heredar de una única clase, mientras que sí se pueden implementar muchos interfaces. Un interfaz es muy similar a una clase, sólo que no define ninguno de sus campos, son sólo una serie de firmas que se debe cumplir.

Imaginemos que una figura geométrica, tenemos un interfaz Figura con los siguientes campos:

interfaz Figura {
     int area();
}

Como vemos, hemos definido la firma de un método, sin embargo no hemos indicado qué debe hacer.
Al aplicarlo a un objeto que tenga que implementar este interfaz:

public class Cuadrado implements Figura {
     int lado;
     
     public Cuadrado (int Lado) {
          this.lado=lado;
     }
     public int area() {     // Firma escrita en el interfaz que nos obliga a codificar en nuestra
          return lado*lado;  // clase.
     }
}

Como muestra el código, para implementar un interfaz utilizamos la palabra implements y después el nombre del interfaz.

La herencia de clases nos proporciona una valiosa herramienta en la programación orientada a objetos, el polimorfismo, concepto que desarrollaremos más adelante.

Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0
The following two tabs change content below.
Reborn as IT Developer. Desarrollador Android y fundador de Proyecto Simio. "En realidad, yo no puedo enseñar nada a nadie, sólo puedo hacerles pensar." - Sócrates.

Deja un comentario