Herencia

Páginas: 5 (1072 palabras) Publicado: 25 de noviembre de 2012
TEMA 3 HERENCIA
Cristina Cachero, Pedro J. Ponce de León
versión 3 (3 sesiones)

Depto. Lenguajes y Sistemas Informáticos

Tema 3. HERENCIA Objetivos


Entender el mecanismo de abstracción de la herencia. Distinguir entre los diferentes tipos de herencia Saber implementar jerarquías de herencia en C++ Saber discernir entre jerarquías de herencia seguras (bien definidas) e inseguras.Reutilización de código: Ser capaz de decidir cuándo usar herencia y cuándo optar por composición.









2

Herencia Del tema anterior…
Persistente Entre objetos


No persist.

Asociación Todo-Parte
 

C1

C2



Uso (depend) C1 C2



Agregación Composición

Entre clases



Generalización

vehiculo aéreo

avion

helicoptero

3

HERENCIAMotivación
Florista cobrar() darRecibo() Panadero cobrar() darRecibo() Vendedor coches

....

cobrar() darRecibo()

Asociamos ese comportamiento a una categoría general (generalización)

CLASE DERIVADA (C++) CLASE HIJA SUBCLASE

Dependiente cobrar() darRecibo()
CLASE BASE (C++) CLASE PADRE SUPERCLASE
4

HERENCIA Definición


La herencia es el mecanismo de implementación medianteel cual elementos más específicos incorporan la estructura y comportamiento de elementos más generales (Rumbaugh 99)
Gracias a la herencia es posible especializar o extender la funcionalidad de una clase, derivando de ella nuevas clases. La herencia es siempre transitiva: una clase puede heredar características de superclases que se encuentran muchos niveles más arriba en la jerarquía deherencia.






Ejemplo: si la clase Perro es una subclase de la clase Mamífero, y la clase Mamífero es una subclase de la clase Animal, entonces el Perro heredará atributos tanto de Mamífero como de Animal.

5

HERENCIA Test “ES-UN”


La clase A se debe relacionar mediante herencia con la clase B si “A ES-UN B”. Si la frase suena bien, entonces la situación de herencia es la másprobable para ese caso
    

Un pájaro es un animal Un gato es un mamífero Un pastel de manzana es un pastel Una matriz de enteros es un matriz Un coche es un vehículo

6

HERENCIA Test “ES-UN”


Sin embargo, si la frase suena rara por una razón u otra, es muy probable que la relación de herencia no sea lo más adecuado. Veamos unos ejemplos:
   

Un pájaro es un mamífero Unpastel de manzana es una manzana Una matriz de enteros es un entero Un motor es un vehículo



De todas formas, puede haber casos en los que este test puede fallar y sin embargo la relación de herencia es evidente. Sin embargo, para la mayor parte de los casos, la aplicación de esta técnica es adecuada.

7

HERENCIA Principales usos




La herencia como reutilización de código: Unaclase derivada puede heredar comportamiento de una clase base, por tanto, el código no necesita volver a ser escrito para la derivada. La herencia como reutilización de conceptos: Esto ocurre cuando una clase derivada sobrescribe el comportamiento definido por la clase base. Aunque no se comparte ese código entre ambas clases, ambas comparten el prototipo del método (comparten el concepto).

8 Clasificación y generalización


La mente humana clasifica los conceptos de acuerdo a dos dimensiones:
 

Pertenencia (TIENE-UN) -> Relaciones todo-parte Variedad (ES-UN) -> Herencia



La herencia consigue clasificar los tipos de datos (abstracciones) por variedad, acercando un poco más el mundo de la programación al modo de razonar humano.
 

Este modo de razonar humano sedenomina GENERALIZACIÓN, y da lugar a jerarquías de generalización/especialización. La implementación de estas jerarquías en un lenguaje de programación da lugar a jerarquías de herencia.

9

Herencia como implementación de la Generalización


La generalización es una relación semántica entre clases, que determina que la interfaz de la subclase debe incluir todas las propiedades públicas y...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Herencia
  • la herencia
  • la herencia
  • Herencia
  • Herencia
  • Herencia
  • Herencias
  • la herencia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS