Java

Páginas: 17 (4058 palabras) Publicado: 22 de agosto de 2013
Proyecto Leonardo

Año 4 – Volumen 3 – Número 1 – Octubre de 2008

ISSN 1668-7523

HERENCIA MÚLTIPLE EN JAVA

Oscar A. León, Mariana Brachetta, Julio Monetti
Cátedra Paradigmas de Programación
Departamento de Ingeniería en Sistemas de Información
Universidad Tecnológica Nacional – Facultad Regional Mendoza.
Coronel Rodríguez 273. 5500 Mendoza. www.frm.utn.edu.ar
Tel. 0261 4239596.oleon@frm.utn.edu.ar, mbrachetta@mendoza.edu.ar,
monetti@uncu.edu.ar

RESUMEN
En el artículo se comentan algunos aspectos de la utilización de relaciones de herencia múltiple, para el
desarrollo de software orientado a objetos. En particular se analiza una alternativa de implementación de
este tipo de relaciones en el lenguaje Java. Dado que el mismo no permite implementar relaciones deherencia múltiple en forma directa, las mismas se "simulan" mediante la utilización de interfaces, lo cual
se muestra a través de un ejemplo, en el cual se discuten algunos aspectos de la implementación. También
se analiza el modo de soportar características como reusabilidad, polimorfismo, redefinición de métodos y
definiciones de métodos “forwarding”, y se comentan algunas de las desventajas quepresenta.

PALABRAS CLAVE
Herencia Múltiple. Lenguaje Java. Programación Orientada a Objetos. Patrones.

11

Proyecto Leonardo

Año 4 – Volumen 3 – Número 1 – Octubre de 2008

ISSN 1668-7523

INTRODUCCIÓN
Uno de los objetivos de la programación orientada a objetos, es incrementar la
productividad en el desarrollo de software. Uno de los modos de lograr ésto, es
mediante lareutilización de código existente, para lo cual las relaciones de herencia son
uno de los medios más utilizados.
Un buen diseño del esquema de relaciones de herencia resulta crítico, ya que si el
mismo está bien hecho facilitará la reutilización de código, permitiendo mantener al
mismo tiempo el control del desarrollo del software. Por otra parte, un mal diseño, hará
que la reutilización de código sevea dificultada o impedida.
El diseño del lenguaje Java, imposibilita pensar el diseño de un programa aplicando
herencia múltiple (Eckel, 2000), como se podría hacer por ejemplo en C++. Java
permite únicamente una forma cercana al concepto de herencia múltiple, a través de la
implementación de interfaces. Esta restricción de los diseñadores del lenguaje, les ha
permitido simplificar laimplementación del compilador.
Cuando se utilizan lenguajes como C++, frecuentemente se hace un uso indebido de las
relaciones de herencia múltiple, lo cual hace que el mismo pierda integridad. En Java
esto no ocurre, ya que no ofrece soporte para este tipo de relaciones.
Si bien las relaciones de herencia múltiple, aparecen muy pocas veces frente a las de
herencia simple, ambos esquemas tienenventajas y desventajas (Ghan Bir Singh, 1995);
en ocasiones se presentan situaciones en las cuales la utilización de relaciones de
herencia múltiple resulta conveniente.

HERENCIA MÚLTIPLE
Dentro de los lenguajes O.O. (orientados a objetos) existen algunos que soportan
herencia múltiple, como C++ (Stroustrup, 2000) y Eiffel (Meyer, 2001); en cambio
otros no, como en el caso de Smalltalk yJava. Si bien, la mayoría de las situaciones
pueden resolverse sin recurrir a herencia múltiple, en algunos casos es conveniente
contar con esta característica, a fin de lograr una mejor implementación de la aplicación.
Desde el punto de vista del diseño de un lenguaje, soportar herencia múltiple complica
la tarea de implementación, ya que hay que prever cómo resolver situaciones como la
que semuestra en la Figura 1, mediante el diagrama UML de relaciones de herencia
múltiple entre las clases A, B y C (Fowler y Scott 2000). Cuando un objeto de clase C
tiene que acceder al atributo p, el lenguaje debe tener algún medio de discriminar a cuál
atributo p se quiere referir, si al de la clase A o la B.

Figura 1: Herencia múltiple
12

Proyecto Leonardo

Año 4 – Volumen 3 – Número...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera
  • Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS