POO Herencia

Páginas: 22 (5387 palabras) Publicado: 13 de septiembre de 2015
Programación orientada a objetos

TEMA 3
HERENCIA
Cristina Cachero, Pedro J. Ponce de León
versión 3
(Curso 10/11)
(3 sesiones)

POO

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 (biendefinidas) 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



Asociación



Todo-Parte



Entre clases



No persist.

C1

C2



Uso (depend)
C1

C2

Agregación
Composición

Generalización

vehiculo aéreo

avion

helicoptero

3

HERENCIA
Motivación
Florista

Panaderocobrar()

cobrar()

darRecibo()

darRecibo()

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

Vendedor
coches

....

cobrar()
darRecibo()

CLASE DERIVADA (C++)
CLASE HIJA
SUBCLASE

Dependiente
cobrar()
darRecibo()

CLASE BASE (C++)
CLASE PADRE
SUPERCLASE
4

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 se denomina GENERALIZACIÓN,
y da lugar a jerarquías de generalización/especialización.
La implementación de estas jerarquías en un lenguajede
programación da lugar a jerarquías de herencia.

5

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 privadas
de la superclase.
Disminuye el número de relaciones (asociaciones y
agregaciones) del modelo
Aumenta la comprensibilidad,expresividad y
abstracción de los sistemas modelados.
Todo esto a costa de un mayor número de clases
7

HERENCIA
Definición






La herencia es el mecanismo de implementación mediante el 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
de herencia.


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.

8

HERENCIATest “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ás probable 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

9

HERENCIA
Test “ES-UN”


Sin embargo, si la frase suena rarapor 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
Un pastel de manzana es una manzana
Una matriz de enteros es un entero
Un motor es un vehículo

10

HERENCIA
Principales usos




La herencia como reutilización de código: Una clase
derivada puede heredar comportamiento de una clase
base, por tanto,el código no necesita volver a ser escrito
para la derivada.
 Herencia de implementación
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).
 Herencia de interfaz
11

Tipos de Herencia...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • herencia.(poo)
  • POO
  • herencia poo
  • Herencia en poo
  • Ejercicis de Herencia- Poo
  • Código POO para calculadora con herencia
  • La poo
  • pooo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS