lunes, 12 de octubre de 2015

Herencia y Herencia Multiple

Programación Orientada a Objetos

Herencia:
La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.
 
La herencia está fuertemente ligada a la re utilización del código en la POO. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase.

Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple.
 
La primera herencia simple como se indica que se pueden definir nuevas clases solamente a partir de una clase inicial;  mientras que la segunda herencia multiple indica que se pueden definir nuevas clases a partir de dos o más clases iniciales.
java, sólo permite herencia simple.

Ejemplo de Herencia Simple:

El código correspondiente a las tres clases de ejemplo anteriormente mencionadas está detallado en los listados de código del 1 al 3:

Listado de código 1
public class Animal {
private String nombre;
private String sexo;
private String color;

public void comer(){
System.out.println("Estoy comiendo");
}

public void dormir(){
System.out.println("Estoy durmiendo");
}
}

Listado de código 2
public class Perro extends Animal{
public void ladrar(){
System.out.println("jau jau");
}
}

Listado de código 3
public class Gato extends Animal{
public void maullar(){
System.out.println("miau");
}
}

Herencia Múltiple:

Java no soporta la herencia múltiple pero para contrarrestar el no soporta la herencia múltiple en java se creó lo que se llama interfaces que son clases especiales las cuales pueden implementar más de una interface donde se pueden crear métodos que comparten dichas clases y para poder usar esos métodos solo tenemos que implementar usando la palabra implements implementar que es lo mismo que heredar siendo esta una forma alternativa de la herencia múltiple.

La herencia múltiple es el mecanismo que permite al programador hacer clases derivadas a partir, no de una sola clase base, sino de varias. Para entender esto mejor, pongamos un ejemplo: Cuando ves a quien te atiende en una tienda, como persona que es, podrás suponer que puede hablar, comer, andar, pero, por otro lado, como empleado que es, también podrás suponer que tiene un jefe, que puede cobrarte dinero por la compra, que puede devolverte el cambio, etc

Ejemplo de herencia Múltiple:

public interface Mascota {
public abstract void jugar();
public abstract void vacunar();
}

public class canino {
public void ladrar();
}

public  class perro extends canino implements Mascota {

public void comer(){…}

public void dormir(){…}
}

No hay comentarios:

Publicar un comentario