Diario de un Aprendiz de Java

Saturday, May 21, 2005

¿Qué es esto de la herencia?

Una de las características de los lenguajes de programación orientada a objetos (POO) es la herencia. La herencia es un mecanismo que nos permite crear nuevas clases basandonos en clases ya creadas, y nos ayuda a evitar la repetición de codigo.
Imaginemad que necesitamos crear una aplicación que nos ayude a catalogar los animales que nos encontremos cuando paseemos por el bosque. Todos tendran elementos en común (todos tendrán patas, así como todos tendrán un nombre científico, etc ...), que podremos establecer como variables en la clase principal, que llamaremos Animal. Pero también tendrán peculiaridades dependiendo de si són mamiferos u otros, así que tendremos que hacer subclases que contengan las peculiaridades de los insectos y demás, además de las própias de todos los animales. Aqui es cuando entra en juego la herencia, ya que gracias a ella podemos crear subclases que heredaran las variables y los métodos de su clase "madre", además de poder añadir nuevos métodos y nuevas variables a la nueva subclase.
En Java especificamos cual es la clase de la que debe heredar variables y métodos mediante inclusión de la palabra reservada extends seguida del nombre de la clase madre, justo después de el nombre de la subclase.
class nombreSubclase extends claseMadre {
  /*Variables y métodos própias de la subclase*/
}

En este caso la clase nombreSubclase heredaría las variables y los métodos de la clase claseMadre.

Añado un pequeño codigo que ejemplifica el uso de la herencia de manera muy básica. Ya sabeis que para compilar el codigo le debeis dar el nombre de la clase en la que este el método main seguido de la extensión .java (en este caso seria Herencia.java).

class Animal {   //La clase madre
  String nombre;
  byte numeroPatas;
}

class Mamifero extends Animal {    /*Toma Animal como clase madre*/
  byte mesesGestacion;

  void nombreAnimal() {
   System.out.println(nombre);
  }
}

class Herencia {
  public static void main(String[] args) {
   Mamifero humano = new Mamifero();    //Creamos el objeto humano
   humano.nombre = "Homo Sapiens";
   humano.numeroPatas = 2;
   humano.mesesGestacion = 9;
   humano.nombreAnimal();
  }
}

6 Comments:

Post a Comment

<< Home