Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Actividad 02 U3 Resumen
Actividad 02 U3 Resumen
ACTIVIDAD
RESUMEN UNIDAD 3
La herencia ofrece una ventaja importante, permite la reutilización del código. Una vez
que una clase ha sido depurada y probada, el código fuente de dicha clase no necesita
modificarse. Su funcionalidad se puede cambiar derivando una nueva clase que herede
la funcionalidad de la clase base y le añada otros comportamientos. Reutilizando el
código existente, el programador ahorra tiempo y dinero, ya que solamente tiene que
verificar la nueva conducta que proporciona la clase derivada.
Cuando se dan cuenta que diversos tipos tienen algo en común, por ejemplo en el juego
del ajedrez peones, alfiles, rey, reina, caballos y torres, son piezas del juego. Creamos,
por tanto, una clase base y derivamos cada pieza individual a partir de dicha clase base.
La herencia está fuertemente ligada a la reutilizació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 indica que
se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la
segunda indica que se pueden definir nuevas clases a partir de dos o más clases
iniciales. Java sólo permite herencia simple.
Herencia Múltiple
Si buscamos modelar nuestras clases u objetos como propios de la realidad, todos los
conceptos de la orientación a objetos nos serán muy fácil de implementar
mientras programamos.
3.3 Reutilización de miembros heredados
Para que el código existente se pueda reutilizar, debe definir alguna forma de
comunicación o interfaz. Esto se puede dar por llamadas a una subrutina, a un objeto, o
a una clase.
1. Se puede declarar un nuevo atributo con el mismo identificador que uno heredado,
quedando este atributo oculto. Esta técnica no es recomendable.
4. Un método declarado con el modificador final tampoco puede ser redefinido por una
clase derivada.
6. En general puede accederse a los métodos de la clase ascendiente que han sido
redefinidos empleando la palabra reservada super delante del identificador del método.
Este mecanismo sólo permite acceder al método perteneciente a la clase en el nivel
inmediatamente superior de la jerarquía de clases.
3.4 referencia al objeto de la clase base
Consideremos las figuras planas cerradas como el rectángulo, y el círculo. Tales figuras comparten
características comunes como es la posición de la figura, de su centro, y el área de la figura,
aunque el procedimiento para calcular dicha área sea completamente distinto. Podemos por tanto,
diseñar una jerarquía de clases, tal que la clase base denominada Figura, tenga las características
comunes y cada clase derivada las específicas. La relación jerárquica se muestra en la figura
La clase Figura es la que contiene las características comunes a dichas figuras concretas por
tanto, no tiene forma ni tiene área. Esto lo expresamos declarando Figura como una clase
abstracta, declarando la función miembro area abstract.
Las clases abstractas solamente se pueden usar como clases base para otras clases. No se
pueden crear objetos pertenecientes a una clase abstracta. Sin embargo, se pueden declarar
variables de dichas clases.
En el juego del ajedrez podemos definir una clase base denominada Pieza, con las características
comunes a todas las piezas, como es su posición en el tablero, y derivar de ella las características
específicas de cada pieza particular. Así pues, la clase Pieza será una clase abstracta con una
función abstract denominada mover, y cada tipo de pieza definirá dicha función de acuerdo a las
reglas de su movimiento sobre el tablero.
3.5 Constructores y destructores en clases derivadas
El lenguaje javo permite redefinir miembros de la clase base en las clases derivadas,
pero el compilador emite una advertencia cuando detecta una redefinición. Una
advertencia (warning) es un mensaje del compilador acerca de un posible problema. Sin
embargo, en este caso sí se genera código ejecutable (a diferencia del mensaje de error).
Redefinición de campos. El siguiente ejemplo muestra cómo reutilizar los identificadores
de los campos de la clase base en una clase derivada.
• 3.4 referencia al objeto de la clase base - Programcion. (s. f.).
https://sites.google.com/site/wwwprogramacionorientadacom/34-referencia-al-
objeto-de-la-clase-base
• 3.5 constructores y destructores en clases derivadas - Programcion. (s. f.).
https://sites.google.com/site/wwwprogramacionorientadacom/35-constructores-y-
destructores-en-clases-derivadas
• Unidad 3 Herencia. (s. f.-b). http://fjglez90.blogspot.com/2012/06/unidad-3-
herencia.html