Orientado objeto

Páginas: 42 (10311 palabras) Publicado: 24 de noviembre de 2011
La herencia, más aumento de la ambigüedad

Índice

4. La herencia, más aumento de la ambigüedad 103
Sobre el capítulo 104
Motivaciones 104
Objetivo 104
Contenido 104
4.1 La herencia 105
4.2 El polimorfismo 106
4.3 La herencia como taxonomía 107
4.4 Curiosidades biológicas de la herencia software 108
4.5 La herencia y la evolución (equivocada) delsoftware 109
4.6 Delegar en vez de heredar 112
4.7 El principio de sustitución de Liskov 114
4.8 La evolución segura del software 115
4.9 El aporte del principio de sustitución, la ambigüedad 117
4.10 Condiciones del principio de sustitución 118
4.11 Contraejemplo de la herencia. El cuadrado no es un rectángulo 119
4.12 Las clases abstractas 122
4.13 Las clases generales,una solución alternativa, pero… 124
4.14 Las clases particulares, beneficios y problema 126
4.15 La ambigüedad, solución al problema de la diversidad 127
4.16 La ambigüedad es la clave, no la división 128
4.17 La herencia múltiple 128
4.18 Aproximación al patrón adaptador 131
4.19 La herencia vista desde el código, un ejemplo 131
4.20 El polimorfismo en Java 136
4.21Ejercicio 143
Una solución 144
4.22 Otro ejercicio 147
La búsqueda de la plasticidad, un cambio del diseño 148
La solución del rectángulo 151
Bibliografía 152

Sobre el capítulo

Motivaciones
La herencia ha sido y es un canto de sirena en los objetos. Quien lo escucha con oídos ingenuos se hunde con el sistema. Parece que la herencia es la fuente de ahorro decódigo, de la facilidad de modificación y extensión de los programas, pero realmente es lo contrario, salvo que se utilice con el papel y la forma adecuada. El papel adecuado de la herencia es como medio de aumento de la ambigüedad y la forma adecuada de uso es mediante el polimorfismo.

Objetivo
El objetivo del presente capítulo es que los alumnos comprendan:

1. El conceptode herencia, su papel favorable y sus papeles perjudiciales

2. El concepto de polimorfismo

3. Que es mejor delegar que heredar

4. El principio de sustitución de Liskov, como forma segura y útil de la herencia

5. Las clases abstractas

6. Que la ambigüedad es la clave, no la división

Contenido
La primera parte profundiza en laherencia, sus aspectos buenos y malos, y recomienda que es preferible delegar que heredar. Se enuncia también el concepto de polimorfismo.

La segunda parte estudia con detalle el principio de sustitución de Liskov, sus condiciones y cómo un cuadrado no es un rectángulo, en términos de la herencia software.

La tercera parte se dedica a las clases abstractas; a la ambigüedad comosolución de la diversidad y, en general, como solución más poderosa que el limitado principio de divide y vencerás.

La cuarta parte discute la herencia múltiple, sus efectos nefastos actuales y las restrictivas condiciones donde es favorable, por ejemplo, en el patrón adaptador.

1. La herencia

La herencia es uno de los cantos de sirenas del enfoque de objetos. Se dice mucho desus favores y muy poco de sus peligros. Por esta causa primero se estudiará la definición y los peligros, y después se verá la forma de obtener los favores de la herencia.

Desde el punto de vista formal, [Booch 94] establece que:

La herencia es una relación entre clases donde una clase comparte la estructura o comportamiento definido en otra clase (herencia simple) o en másclases (herencia múltiple). La herencia define una jerarquía “es-un” entre clases, en la cual una subclase hereda de una o más clases generalizadas; una subclase típicamente especializa su superclase añadiendo o redefiniendo la estructura y el comportamiento.

La Figura 4. 1 ilustra el mecanismo de herencia simple.

Figura 4. 1 La herencia

En la Figura 4. 1, la clase B comparte...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • orientada a objetos
  • Que es un Objeto? Programacion Orientada a Objetos
  • Diagramas orientado a objetos
  • Modelado orientado a objetos
  • Programacion orientada a objetos
  • PROGRAMACIÓN ORIENTADA A OBJETOS EN C++.
  • Programacion orientada a objetos
  • ¿Que es la Programación Orientada a Objetos?

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS