Tema 3 Herencia - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Tema 3 Herencia

Description:

Si el piso se encuentra en la tercera planta o superior (sea de obra nueva o no) ... Dame el n mero de planta del piso 5. Piso. Planta: 5. Direccion: Serrano, ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 32
Provided by: jjpan
Category:
Tags: el | herencia | piso | tema

less

Transcript and Presenter's Notes

Title: Tema 3 Herencia


1
Tema 3 Herencia
  • Módulo III
  • Programación Orientada a Objetos

2
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

3
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

4
Concepto de Herencia
  • La herencia tiene connotaciones de transmisión
  • Concepto de herencia en Programación Orientada a
    Objetos

Transmisión de la vista pública (métodos
públicos) y de la vista privada (atributos,
métodos privados y definición de los métodos) de
una clase a otra
5
Concepto de Herencia
Se hereda el comportamiento (la interfaz) y los
datos código (implementación)
6
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

7
Relación de Herencia
  • Se establece entre dos clases, es una relación
    binaria

Sintaxis en Pascal
type Cuadrado object (Poligono)
8
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

9
Jerarquía de clasificación
  • La relación de herencia permite establecer
    jerarquías por grado de clasificación
  • Si en la jerarquía de clasificación intervienen N
    clases, se establecerán entonces N-1 relaciones
    de herencia
  • Jerarquía por grado de clasificación
  • Aquella donde cada nodo de la jerarquía
    establece un dominio de elementos incluido en el
    dominio de los nodos padre e incluye a los
    dominios de cada nodo hijo

10
Jerarquía de clasificación
  • Características
  • Eminentemente subjetivas
  • Dificultad para establecer una clasificación
    perfecta
  • Surgen elementos no categorizables
  • Elementos que no se acomodan completamente en
    ninguna categoría

11
Jerarquía de clasificación
12
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

13
Jerarquía de clasificación
  • Reglas de Construcción
  • REGLA DE GENERALIZACIÓN / ESPECIALIZACIÓN
  • Especialización presencia de unas
    características específicas de un subconjunto de
    elementos de un determinado conjunto como, para
    que si bien mantienen las características
    esenciales e identificativas del conjunto al que
    pertenecen, también son lo suficientemente
    relevantes como para ser rasgos distintivos de
    dicho subconjunto de elementos.
  • REGLA ES UN?

14
Jerarquía de clasificación
  • No se cumple la regla Es un?
  • Se cumple la regla de especialización
  • Se cumple la regla Es un?
  • No se cumple la regla de especialización

15
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

16
Tipos de Herencia
Herencia simple se produce cuando una clase hija
hereda de una única clase padre
Herencia múltiple se produce cuando una clase
hija hereda de más de una clase padre
17
Tipos de Herencia
  • Ejemplo de herencia múltiple

Posibilidad de ambigüedades y colisiones
Pascal NO TIENE HERENCIA MÚLTIPLE
18
Contenidos
  • Herencia
  • Concepto de Herencia
  • Relación de Herencia
  • Jerarquías de clasificación
  • Reglas de construcción
  • Tipos de herencia
  • Formas de especialización

19
Formas de especialización
  • Formas de especialización en una relación de
    herencia
  • Añadir atributos a los heredados
  • Añadir métodos a los heredados
  • Redefinir métodos de los heredados

20
Adición de métodos y atributos
  • Tras añadir métodos y / o atributos para
    especializar la clase hija ésta tendrá
  • Atributos transmitidos
  • Métodos transmitidos
  • Atributos añadidos y / o
  • Métodos añadidos.

21
Adición de métodos y atributos
  • Implicaciones de
  • Añadir atributos gt ninguna
  • Añadir métodos gt es necesario procesar los
    atributos (heredados o añadidos)
  • En la definición de los métodos
  • de la clase hija no se puede acceder
  • a los atributos heredados de la clase
  • padre (son privados)

22
Ejercicio 3.1
  • Se pretende crear una clase Coordenada que sea
    general y sirva para su uso en cualquier
    aplicación. Y, de forma más particular, clases
    que representen coordenadas para los juegos de
    las Tres en Raya y el Ajedrez.
  • Como servicios de la clase Coordenada están el de
    consultar y modificar los valores de la fila y la
    columna. También mostrar una coordenada por
    pantalla.
  • En el caso de coordenadas particulares para un
    juego concreto, debe ser posible validar si una
    coordenada determinada es válida de acuerdo a los
    límites del tablero que se utilice en dicho
    juego.
  • Se debe crear una jerarquía de clasificación
    mediante herencia.

23
Adición de métodos y atributos
  • Actitud correcta no se accede a los atributos de
    la clase padre desde la definición de los métodos
    de la clase hija
  • Camino alternativo hacer uso de los métodos de
    la clase padre que procesan sus atributos
  • Reduce el acoplamiento entre las clases
  • Qué ocurre si el tratamiento dado a los
    atributos por los métodos de la clase padre no se
    adecua al que precisa en un momento dado la clase
    hija?

24
Adición de métodos y atributos
  • Si la combinación de los métodos transmitidos de
    la clase padre no hace viable la implementación
    de los métodos de la clase hija, alternativas?
  • Añadir nuevos métodos en la clase padre -gt
    desvirtúa el comportamiento de la misma
  • Que los métodos anteriores sean privados -gt no es
    solución, por ser privados no se puede acceder,
    aunque sean transmitidos

25
Adición de métodos y atributos
  • Surge un nuevo cuantificador de visibilidad
  • Protegido (protected)
  • Que algo sea protegido significa que es accesible
    desde la propia clase y desde sus clases hijas
  • Si es necesario, métodos get y set protegidos

type public // métodos públicos
protected // métodos protegidos private //
atributos y métodos privados
26
Redefinición de métodos
  • No excluye a la adición de métodos y / o
    atributos. No son disjuntas
  • Si cambia algún parámetro en la definición del
    método de la clase hija, no sería redefinición
    sino simple sobrecarga
  • La redefinición de un método en la clase hija
    anula el mismo método de la clase padre en la
    implantación de la clase hija
  • Implica pérdida de comportamiento
  • Cómo acceder al comportamiento del padre? En la
    llamada al método de la clase padre se antepone
    inherited

27
Redefinición de métodos
  • Ejemplo de redefinición

type Cuadrado object (Poligono) public proce
dure pintar() end implementation procedure
Cuadrado.pintar() begin inherited
pintar() writeln(método pintar del
cuadrado) end end.
28
Ejercicio 3.2
  • Una inmobiliaria se dedica a vender dos tipos de
    inmuebles pisos y locales. En principio suele
    vender inmuebles de obra nueva, aunque a veces
    tiene en venta algún que otro inmueble de segunda
    mano.
  • Los locales siempre se encuentran en la planta
    baja de los edificios, mientras que los pisos
    pueden estar o bien en la planta baja o en
    cualquier otra planta del edificio en el que se
    encuentre. Por otra parte, algo que caracteriza a
    los locales es el número de ventanales que
    tienen, lo cual les hará más o menos luminosos.

29
Ejercicio 3.2
  • El precio final de cada inmueble se calcula sobre
    un precio base, teniendo en cuenta lo siguiente
  • Para cualquier inmueble
  • Si el inmueble es de segunda mano, si la
    antigüedad es menor a 10 años, se incrementa su
    precio en un 1.
  • Además, para los pisos
  • Si el piso se encuentra en la tercera planta o
    superior (sea de obra nueva o no) el coste sube
    un 5 más (sobre el precio base) y se añadirá al
    precio final que ya tuviera.
  • Además, para los locales
  • Si tiene más de 50 metros cuadrados el precio se
    incrementa en un 2 (sobre el precio base) y se
    añade al precio final que ya tuviera.
  • Si tiene sólo 1 ventanal el precio se reduce en
    un 3 (sobre el precio base) y se añade al precio
    final que ya tuviera.

30
Ejercicio 3.2
  • Se pide crear un diseño orientado a objetos con
    una jerarquía de clasificación que sea capaz de
    representar los diferentes tipos de inmueble que
    vende la inmobiliaria. Se deberá crear un
    programa principal que haga lo siguiente
  • Mostrar al usuario de la aplicación un menú con
    los distintos tipos de inmuebles, para que éste
    elija uno.
  • Una vez seleccionado un tipo de inmueble, pedir
    por teclado los datos necesarios para poder crear
    un objeto de dicho tipo de inmueble.
  • Mostrar los datos del inmueble por pantalla. Se
    deberá mostrar el tipo de inmueble con todas sus
    características, así como el precio base y final
    de venta.

31
Ejercicio 3.2
  • Sobre quÚ tipo de inmueble quiere calcular el
    precio?
  • 1) Piso de Obra Nueva
  • 2) Piso de Segunda Mano
  • 3) Local de Obra Nueva
  • 4) Local de Segunda Mano
  • Pulse cualquier otra tecla para salir
  • 1
  • Dame el precio base del inmueble 230000
  • Dame la direcci¾n Serrano, 34 Madrid
  • Dame el nmero de metros cuadrados 200
  • Dame el nmero de planta del piso 5
  •  
  • Piso
  • Planta 5
  • Direccion Serrano, 34 Madrid
  • Metros cuadrados 200
  • Precio Venta Base 2.300000000000000E005
  • Precio Venta Final 2.415000000000000E005
  •  
Write a Comment
User Comments (0)
About PowerShow.com