Está en la página 1de 41

UTN - FRRE

PARADIGMAS DE PROGRAMACIÓN

P R O G R A M A C I Ó N
ORIENTADA A
OBJETOS
Relaciones de Herencia Simple y Múltiple. Conflicto de nombres.

GRUPO Nº 4
INTEGRANTES
ESCALANTE, THIAGO
FACCINI, LAUTARO
GOMEZ, MARCELO EDGARDO
MENDEZ NICOLET, GUSTAVO JOAQUIN
NUÑEZ, IAN LAUTARO
PERALTA RUIZ, NADINE
SONZA, MATIAS
TOURN, MIGUEL AGUSTÍN
Temas a abordar
01 Herencia 02 Tipos de herencia

03 Ejemplos 04 Herencia Repetida


Conflicto de nombres
UTN - FRRE

HERENCIA
La Herencia es una propiedad que permite a un objeto ser contruido a partir
de otro, lo podemos decir de una manera mas simple, es la capacidad de un
objeto para utilizar estructuras de datos y los métodos previstos en
antepasados o ascendientes. El objetivo final es la reutilización de código.
JERARQUIA DE
CLASES
La clase superior en la jerarquia se denomina superclase ;las clases que
heredan los miembros de la superclase (incluyendo funciones y datos) se
denominan subclase. Las clases derivadas pueden tambien modificar
miembros de la clase base o añadir nuevos miembros. Este proceso puede
continuar , de modo que una clase derivada servira normalmento como una
clase base, a partir de la cual se definen otras clases derivadas.
UTN - FRRE
TIPOS DE HERENCIA

HERENCIA SIMPLE HERENCIA MÚLTIPLE


UTN - FRRE
HERENCIA SIMPLE
A

B
UTN - FRRE
UTN - FRRE
HERENCIA MÚLTIPLE
class T {
int R;
int E() {
return P;

T S
}
}
class S {
int R ;
int E() {
return D;
}
}

A
class A extending T,S {
int D() {
return E();
}
}
UTN - FRRE
HERENCIA MÚLTIPLE
UTN - FRRE

HERENCIA MÚLTIPLE

HERENCIA SIMPLE
UTN - FRRE

HERENCIA SIMPLE
VENTAJAS
Es más fácil de entender y de implementar, haciendo que el código sea más claro y
legible.
No hay ambigüedad, debido a que los métodos y atributos se heredan de una única
clase padre (superclase).

DESVENTAJAS
Dificultad para reutilizar código, ya que si una clase necesita funcionalidades de
otras clases esto resultaría en una duplicación de código.
Se introduce una fuerte dependencia en las subclases respecto a la clase base.
Los cambios en la clase base pueden tener un impacto en todas las subclases.
UTN - FRRE

HERENCIA MÚLTIPLE

VENTAJAS
Reutilización de código, ya que permite más
libertad en la definición de nuevas clases a
partir de las existentes.
Flexibilidad al momento de definir nuevas
clases que se crean a partir de clases
existentes.
DESVENTAJAS
Herencia Repetida
Conflicto de Nombres o Colisión de nombres
UTN - FRRE
EJEMPLO EN SMALLTALK
UTN - FRRE
EJEMPLO EN SMALLTALK
UTN - FRRE
EJEMPLO EN PYTHON
UTN - FRRE
EJEMPLO EN PYTHON
UTN - FRRE
EJEMPLO EN PYTHON
UTN - FRRE
EJEMPLO EN SMALLTALK
UTN - FRRE
EJEMPLO EN PYTHON
UTN - FRRE
EJEMPLO EN PYTHON
UTN - FRRE
EJEMPLO EN C++
Herencia Simple
UTN - FRRE
EJEMPLO EN C++
Herencia Multiple
UTN - FRRE
EJEMPLO EN C++

Conflicto de Nombres
UTN - FRRE
Herencia Repetida

Esto ocurre cuando hay dos subclases las


cuales son heredan de una misma clase, y
hay una cuarta clase la cual hereda de las
dos subclases anteriores

Reconocido como: El problema del diamante


UTN - FRRE Herencia Repetida
persona

estudiante trabajador

Estudiante
-Trabajador
UTN - FRRE
Herencia Repetida
a) Duplicación de superclase
b) No se duplica

ESTE TIPO DE RELACION NO ES , CONCEPTUALMENTE,


DE HERENCIA. NO SE CUMPLE LA RELACION ‘ES UN’.
MATRIMONIO NO ES UN HOMBRE NI ES UNA MUJEPR, POR LO
QUE CONCEPTUALMENTE ES ERRONEO PENSARLO COMO
HERENCIA.
UTN - FRRE
Herencia Repetida

En C++ se permite la duplicacion de superclases, pero requiere el uso de nombres


cualificados totalmente para referirse a los miembros de una copia especifica.

Se introduce el concepto de clase base virtual, esta existe cuando una subclase nombra a otra clase como su superclase y
marca la superclase como virtual, para indicar que es compartida
UTN - FRRE
Herencia Repetida
UTN - FRRE
Herencia Repetida
UTN - FRRE
Herencia Repetida

Algoritmo C3 Linearization o C3 superclass linearization


este algoritmo, maneja la herencia repetida de manera consistente y sin
ambigüedades

El C3 Linearization sigue las siguientes reglas:


Depth-First, Left-to-Right (DFS)
Preservación del Orden de Aparición
Consistencia

BASICAMENTE UN RECORRIDO POST ORDEN


UTN - FRRE
Herencia Repetida
UTN - FRRE
CONFLICTOS DE NOMBRES

Ocurren cuando dos o más superclases


tienen el mismo nombre para un elemento
(como un atributo o un método) y una
subclase es heredera de ambas
superclases, lo que crea ambigüedad en
cuál elemento usar.
UTN - FRRE
CONFLICTOS DE NOMBRES
Python. Ejemplo
UTN - FRRE
CONFLICTOS DE NOMBRES
UTN - FRRE
CONFLICTOS DE NOMBRES
C++. Ejemplo
UTN - FRRE
CONFLICTOS DE NOMBRES
UTN - FRRE
CONFLICTOS DE NOMBRES
UTN - FRRE

ACTIVIDAD

Link:
https://quizizz.com/admin/quiz/6530164
086406958fbfc3f35?source=quiz_share
UTN - FRRE
ACTIVIDAD
¡GRACIAS!

También podría gustarte