416

Capítulo 9 Programación orientada a objetos: herencia

 c) 

Una 

clase 

Auto

 tiene una relación 

“es un” con las clases 

VolanteDireccion

 y 

Frenos

.

 

d) La herencia fomenta la reutilización de software comprobado, de alta calidad.

 

e) Cuando una subclase redefi ne al método de una superclase utilizando la misma fi rma, se dice que la subclase 

sobrecarga a ese método de la superclase.

Respuestas a los ejercicios de autoevaluación

9.1 

a) Herencia.  b) 

public

y

protected

.  c) 

“es un” o de herencia.  d) “tiene-un”, o composición.  e) jerárquica.

f) 

public

.  g) constructor.  h) 

super

.

9.2

a) Verdadero. b) Falso. Una relación 

“tiene un” se implementa mediante la composición. Una relación “es-un”

se implementa mediante la herencia. c) Falso. Éste es un ejemplo de una relación 

“tiene un”. La clase 

Auto

 tiene una 

relación 

“es-un” con la clase 

Vehiculo

. d) Verdadero. e) Falso. Esto se conoce como sobrescritura, no sobrecarga; 

un método sobrecargado tiene el mismo nombre, pero una fi rma distinta.

Ejercicios

9.3

Muchos programas escritos con herencia podrían escribirse mediante la composición, y viceversa. Vuelva a 

escribir las clases 

EmpleadoBaseMasComision4

 (fi gura 9.13) de la jerarquía 

EmpleadoPorComision3-EmpleadoBase-

MasComision4

 para usar la composición en vez de la herencia. Una vez que haga esto, valore los méritos relativos de las 

dos metodologías para los problemas de 

EmpleadoPorComision3

 y 

EmpleadoBaseMasComision4

, así como también 

para los programas orientados a objetos en general. ¿Cuál metodología es más natural? ¿Por qué?

9.4

Describa las formas en las que la herencia fomenta la reutilización de software, ahorra tiempo durante el desa-

rrollo de los programas y ayuda a prevenir errores.

9.5

Dibuje una jerarquía de herencia para los estudiantes en una universidad, de manera similar a la jerarquía que se 

muestra en la fi gura 9.2. Use a 

Estudiante

 como la superclase de la jerarquía, y después extienda 

Estudiante

 con las 

clases

EstudianteNoGraduado

 y 

EstudianteGraduado

. Siga extendiendo la jerarquía con el mayor número de niveles 

que sea posible. Por ejemplo, 

EstudiantePrimerAnio

,

EstudianteSegundoAnio

,

EstudianteTercerAnio

 y 

Estu-

dianteCuartoAnio

podrían extender a 

EstudianteNoGraduado

, y 

EstudianteDoctorado

 y 

EstudianteMaestria

podrían ser subclases de 

EstudianteGraduado

. Después de dibujar la jerarquía, hable sobre las relaciones que existen 

entre las clases. [

Nota: no necesita escribir código para este ejercicio].

9.6

El mundo de las fi guras es más extenso que las fi guras incluidas en la jerarquía de herencia de la fi gura 9.3. 

Anote todas las fi guras en las que pueda pensar (tanto bidimensionales como tridimensionales) e intégrelas en una 
jerarquía 

Figura

 más completa, con todos los niveles que sea posible. Su jerarquía debe tener la clase 

Figura

en la parte 

superior. Las clases 

FiguraBidimensional

 y 

FiguraTridimensional

 deben extender a 

Figura

. Agregue subclases 

adicionales, como 

Cuadrilatero

 y 

Esfera

, en sus ubicaciones correctas en la jerarquía, según sea necesario.

9.7

Algunos programadores prefi eren no utilizar el acceso 

protected

, pues piensan que quebranta el encapsula-

miento de la superclase. Hable sobre los méritos relativos de utilizar el acceso 

protected

, en comparación con el acceso 

private

 en las superclases.

9.8

Escriba una jerarquía de herencia para las clases 

Cuadrilatero

,

Trapezoide

,

Paralelogramo

,

Rectangulo

 y 

Cuadrado

. Use 

Cuadrilatero

 como la superclase de la jerarquía. Agregue todos los niveles que sea posible a la jerar-

quía. Especifi que las variables de instancia y los métodos para cada clase. Las variables de instancia 

private

 de 

Cuadri-

latero

 deben ser los pares de coordenadas 

x-y para los cuatro puntos fi nales del 

Cuadrilatero

. Escriba un programa 

que cree instancias de objetos de sus clases, y que imprima el área de cada objeto (excepto 

Cuadrilatero

).

09_MAQ_CAP_09.indd416

4/19/081:24:44AM