POO 3.0 Herencia
POO 3.0 Herencia
a Objetos
Tema 3: Herencia
Tema 3: Herencia
3 Herencia
3.1 Definición: clase base, clase derivada
3.2 Clasificación: herencia simple, herencia múltiple
3.3 Reutilización de miembros heredados
3.4 Referencia al objeto de la clase base
3.5 Constructores y destructores en clases derivadas
3.6 Redefinición de métodos en clases derivadas
Herencia
• De la misma manera que en el mundo real la POO permite definir tipos generales
de objetos y algunos subtipos de éstos.
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
atribN402
MetN402()
MetN401()
atribN301
atribN302
MetN302()
MetN301()
atribN201
atribN202
MetN202()
MetN201()
raizCuadrada() raizCuadrada()
HermanoPadre
potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
raizCuadrada() raizCuadrada()
HermanoPadre potencia() potencia()
suma()
seno()
resta()
coseno()
tangente()
potencia() potencia()
seno()
coseno()
tangente()
Jerarquía de clases en
ClasesHerencia v4
Tablas de verdad de los componentes
Polimorfismo
• El Polimorfismo permite enviar el mismo mensaje a diferentes objetos y que cada
objeto responda de acuerdo a las características de la clase a la que pertenece.
inicia()
y
avanza()
x
salta()
z h
gira() cuenta()
g corrige()
datosIns()
inicia()
r
s
Declaración de la gira()
Clase: HijoStatic datosIns()
a d Declaración de la
b cuenta()
corrige() Clase: ClaseStatic
c saldo()
cuenta()
inicia()
a b d corrige()
y
avanza()
c saldo()
x
salta() h
z
cuenta()
h
cuenta()
gira() g corrige() g corrige()
datosIns()
inicia()
r inicia()
inicia() inicia()
inicia() inicia()
inicia()
s
y y y
avanza() avanza() avanza()
Declaración de la
Clase: HijoStatic
gira()
x x x
datosIns() salta() salta() salta()
z z z
gira()
gira() r gira()
gira() r gira()
gira()
r
datosIns() datosIns()
datosIns() datosIns()
datosIns()
s datosIns() s s
Objeto hijoStatic1 Objeto hijoStatic2 Objeto hijoStatic3
Modificadores static y final
• El modificador static permite definir que una variable es una variable
de clase.
• El modificador final en una variable la establece como una constante.
La variable debe ser creada e inicializada en la misma línea.