Herencia múltiple en Java Java es un lenguaje que incorpora
herencia simple de implementacion pero que puede aportar herencia multiple de interfaz. Esto permite la herencia multiple en el diseño de los
proyectos Java. Una interfaz puede heredar de más de una interfaz antecesora. interface InterfazMultiple extends Interfaz1,Interfaz2{ } Una clase no puede tener más que una clase antecesora, pero puede implementar más de una interfaz: class MiClase extends SuPadre implements Interfaz1,Interfaz2{ } El
ejemplo tipico de herencia multiple es el que se muestra con la herencia en diamante: Imagen 6: Ejemplo de herencia múltiple Para poder llevar a cabo un esquema
como el previo en Java es indispensable que las clases A, B y C de la figura sean interfaces, y que la clase D sea una clase (que recibe la herencia multiple): interface A{ } interface B extends A{ } interface C extends A{ } class D implements B,C{ } E. Colisiones en la herencia múltiple En una herencia multiple, los identificadores de determinadoos metodos o
atributos pueden coincidir en la clase que hereda, si dos de las interfaces padres tienen determinado metodo o atributo que coincida en nombre. A esto se le llama colision. Esto se dara
cuando las clases padre (en el
ejemplo previo B y C) tienen un atributo o metodo que se llame igual. Java resuelve el asunto estableciendo una serie de reglas. Para la colision de nombres de atributos, se obliga a especificar a que interfaz fundamento pertenecen al utilizarlos. Para la colisión de nombres en métodos: Si tienen el mismo nombre y distintos parametros: se produce sobrecarga de metodos permitiendo que existan algunas formas de llamar al mismo. Si solo varia el valor devuelto: se da un yerro de compilacion, señalando que no se pueden implementar los dos. Si coinciden en su declaración: se elimina uno de los dos, con lo que sólo queda uno. F. Envolturas de los
tipos simples Los tipos de
datos de Java no forman fraccion de la jerarquia de objetos. Sin embargo a veces es indispensable crear una representacion
como objeto de sdeterminados de los tipos de
datos simples de Java. La API de Java contiene un conjunto de interfaces especiales para adaptar el comportamiento de los tipos de
datos simple. A estas interfaces se las conoce
como envolturas de tipo simple. Todas ellas son hijas de la clase abstracta Number y son: Double: Da soporte al tipo double. Float: Da soporte al tipo float. Integer: Da soporte a los tipos int, short y byte. Long: Da soporte al tipo long. Character: Envoltura del tipo char. Boolean: Envoltorio al tipo boolean.