SlideShare una empresa de Scribd logo
1 de 44
Unidad 4
HERENCIA, CLASES ABSTRACTAS, INTERFACES Y
POLIMORFISMO
UML
• UML (Unified
Modeling Language) es
un lenguaje que
permite modelar,
construir y
documentar los
elementos que forman
un sistema software
orientado a objetos.
UML
CONSTRUIR
VISUALIZAR
DOCUMENTAR
ESPECIFICAR
UML
• Diagramas de estructura enfatizan en los elementos
que deben existir en el sistema modelado:
• Diagrama de clases
• Diagrama de componentes
• Diagrama de objetos
• Diagrama de estructura compuesta (UML 2.0)
• Diagrama de despliegue
• Diagrama de paquetes
Diagrama de clases
• Diagrama estático que describe la estructura de un
sistema mostrando sus clases, atributos y las
relaciones entre ellos.
• Son utilizados durante el proceso de análisis y
diseño de los sistemas para crear el diseño
conceptual de la información que se manejará.
Representación de clases
• En UML, una clase es representada por un
rectángulo que posee tres divisiones
Ejemplo
Representación de Atributos y
Métodos
• Los atributos y los métodos de una clase pueden ser de
tres tipos, que definen su grado de comunicación y
visibilidad con el entorno, estos son:
• Public (+): el atributo será visible tanto dentro como
fuera de la clase.
• Private (-): el atributo sólo será accesible desde dentro
de la clase (sólo sus métodos pueden manipular los
atributos).
• Protected (#): el atributo no será accesible desde fuera
de la clase, pero si podrá ser manipulado por métodos
de la clase y de sus subclases.
• Static (underlined)
Ejercicio
• Crear un proyecto UML llamado Asociacion en el
que se diseñe un diagrama de clases que modele el
proceso de dar de alta a cada una de las personas
que se apuntan a una asociación.
• De cada persona interesa saber sus datos básicos:
DNI, nombre completo y fecha de nacimiento.
Cuando cada nuevo socio se da de alta, se le asigna
un código de asociado alfanumérico y se anota la
fecha de alta.
• La clase Fecha se modela con tres campos (día, mes
y año) de tipo entero.
Ejercicio
• Se desea diseñar un diagrama de clases sobre la
información de las reservas de una empresa
dedicada al alquiler de automóviles, teniendo en
cuenta que:
• Es importante registrar la fecha de inicio y la fecha
final de la reserva, el precio de alquiler de cada
auto, litros de gasolina al momento de la reserva.
• Todo auto siempre tiene asignado un garaje que no
puede cambiar. De cada auto se requiere la
matrícula, modelo, color y marca.
• Cada reserva se realiza en una determinada agencia
Ejercicio
• Representa mediante un diagrama de clases la siguiente
especificación sobre las personas que participan en una película:
• De cada película se almacena el título, la sinopsis, el año, el
género al que pertenece (drama, comedia, acción, terror,
romance, aventura, scifi) y el país.
• Sobre las personas que participan en la película es necesario
conocer el nombre, los apellidos, la fecha de nacimiento y la
nacionalidad.
• Una persona puede participar en una película como actor,
director, productor o guionista.
• Una persona se considera actor si ha actuado al menos en una
película.
• Una película puede tener asociados varios trailers que son
editados por una o más personas. No puede existir el trailer de
una película hasta que existe la película.
Interacciones entre clases
(relaciones)
• Herencia (Especialización/Generalización):
• Composición:
• Agregación:
• Dependencia o Instanciación (uso):
• Asociación:
• Involutiva
Relaciones Involutivas
• Cuando la misma clase aparece en los dos extremos
de la asociación.
Agregación
• La agregación es un tipo de asociación que indica
que una clase es parte de otra clase.
• Los componentes pueden ser compartidos por
varios compuestos.
• La destrucción del compuesto no conlleva la
destrucción de los componentes.
Una empresa agrupa a
varios clientes
Composición
• Tipo de asociación fuerte donde la vida de la clase
contenida debe coincidir con la vida de la clase
contenedor.
• Los componentes constituyen una parte del objeto
compuesto.
• Los componentes no pueden ser compartidos por
varios objetos compuestos.
• Si se elimina los objetos compuestos, se eliminan
también sus componentes.
Composición
Composición
• Tenemos una clase Empresa.
• Un objeto Empresa está a su vez
compuesto por uno o varios objetos del
tipo empleado.
• El tiempo de vida de los objetos
Empleado depende del tiempo de vida
de Empresa, ya que si no existe una
Empresa no pueden existir sus
empleados.
Diferencias entre Composición y
Agregación
Agregación Composición
Varias asociaciones
comparten los
componentes
Sí No
Destrucción de los
componentes al destruir
el compuesto
No Sí
Cardinalidad a nivel
compuesto
Cualquiera 0..1 ó 1
Representación Rombo transparente Rombo negro
Dependencia
• Es una relación de uso entre dos clases (una usa a
la otra). Esta relación es la más básica entre clases y
comparada con los demás tipos de relación, la mas
débil.
• Tenemos una clase Impresora..
• Tenemos una clase Documento con un atributo texto.
• La clase Impresora se encarga de imprimir los Documentos.
Dependencia
• La ClaseA usa a la ClaseB.
• La ClaseA depende de la ClaseB.
• Dada la dependencia, todo cambio en la ClaseB podrá
afectar a la ClaseA.
• se interpreta como que la ClaseA hace uso de la ClaseB ya
sea instanciandola directamente, o
bien, recibiéndola como parámetro de entrada en uno de
sus métodos.
Herencia
• La relación entre super clases y subclases
Adicionales
• Los elementos adicionales que pueden aparecer en
una relación de este tipo son los siguientes:
• Rol: Identifica con nombres a los elementos que
aparecen en los extremos de la línea que denota la
relación, dicho nombre describe la semántica que
tiene la relación en el sentido indicado.
• Multiplicidad: La multiplicidad de una relación
determina cuantos objetos de cada tipo intervienen
en la relación. Presenta las siguientes
características:
Multiplicidad
• Cada asociación tiene dos multiplicidades (una para cada
extremo de la relación)
• Para especificar hay que indicar que la multiplicidad mínima
y máxima (mínima...máxima)
• Una multiplicidad mínima mayor igual que 1 establece una
relación obligatoria
Herencia
• Tipo especial de relación entre clases
• Es uno de los aspectos que distinguen el Paradigma
de Orientación a Objetos frente a otros paradigmas
• Mecanismo que, bien utilizado, facilita la
modificabilidad y reutilización de los diseños y el
código.
• La Herencia es uno de los 4 pilares de la
programación orientada a objetos (POO) junto con
la Abstracción, Encapsulación y Polimorfismo
¿En qué consiste?
• En un principio, existen dos clases, a las que
llamaremos padre (superclase o clase base) e hija
(subclase o clase derivada).
• Al igual que las herencias en la vida real, la clase
hija pasa a tener lo que tiene la clase padre:
• Atributos
• Métodos
• Un objeto de la clase hija es también un objeto de
la clase padre.
• En la clase hija se definen las diferencias respecto
de la clase padre.
¿En qué consiste?
• Si una clase B hereda de otra clase A
entonces:
• B incorpora la estructura (atributos) y
comportamiento (métodos) de la clase A.
• B puede incluir adaptaciones:
• B puede añadir nuevos atributos
• B puede añadir nuevos métodos
• B puede redefinir métodos
El proceso de herencia es
transitivo
• B puede redefinir métodos
• B hereda de A
• A es la superclase y B la subclase
• C hereda de B y A
• B y C son subclases de A
• B es un descendiente directo de A
• C es un descendiente indirecto de A
Ejemplo
• Por ejemplo en un proyecto que utilice objetos Taxi
y objetos Autobus podríamos encontrarnos algo
así:
Un ejemplo
¿Para qué se usa?
• Para extender la funcionalidad de la clase padre.
• Para especializar el comportamiento de la clase
padre.
• Ventajas
• Se ahorra código Permite reutilizar código extendiendo
su funcionalidad
Desventajas
• Se introduce una fuerte dependencia en la clase hija
respecto a la clase padre
• Un cambio en la clase padre puede tener efectos
imprevistos en las clases hijas
• Un objeto de una clase hija puede tener un
comportamiento inconsistente con lo esperado de un
objeto de la clase padre
• Se establece una jerarquía o clasificación.
• Si cambia el criterio de clasificación puede acarrear
muchas modificaciones
Tipos de herencia
• Herencia simple
• Una clase puede heredar de una única
clase
• Herencia múltiple
• Una clase puede heredar de varias
clases. Cabe decir también que en java
no se permite la herencia múltiple
Ejemplo
Diseño de jerarquías de herencia
• Generalización (Factorización )
• Se detectan clases con un comportamiento común
• Ejemplo: Libro y Revista son Publicaciones
• Especialización (Abstracción )
• Se detecta que una clase es un caso especial de
otra
• Ejemplo: Rectángulo es un tipo de Polígono
Caso de estudio
• Representa mediante un diagrama de clases la
siguiente especificación sobre una empresa:
• Una aplicación necesita almacenar información
sobre empresas, sus empleados y sus clientes.
• Ambos se caracterizan por su nombre y edad.
• Los empleados tienen un sueldo bruto, los
empleados que son directivos tienen una categoría,
así como un conjunto de empleados subordinados.
• De los clientes además se necesita conocer su
teléfono de contacto.
• La aplicación necesita mostrar los datos de
empleados y clientes
Solución
Caso de estudio
• Representa mediante un diagrama de clases la siguiente especificación
relacionada con una aplicación de gestión de pedidos. Dicha aplicación
debe guardar la información de los pedidos que realizan sus clientes y la
fecha en que se formalizan.
• Los pedidos constan habitualmente de varios productos. El coste total
del pedido se calcula a partir de los precios individuales de cada
producto, así como de la cantidad e impuestos asociados a cada uno. Es
importante mantener información sobre las existencias de cada
producto con el fin de poder informar al cliente si habrá retrasos en la
entrega del pedido.
• El pedido podrá pagarse de una vez o en varios pagos.
• Las formas de pago posible son:
• Tarjeta de crédito (fecha de caducidad, número, VISA o MASTERCARD)
• Efectivo (moneda)
• Cheque (nombre, entidad bancaria)
• El pedido podrá estar en uno de los siguientes estados:
• pendiente, pagado, procesando, enviado y entregado.

Más contenido relacionado

La actualidad más candente

Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definicionesBoris Salleg
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendidoGalo Anzules
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y desplieguejoshell
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relaciónjosecuartas
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 

La actualidad más candente (20)

Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendido
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Destacado (7)

Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Unidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIASUnidad 3 CLASES, OBJETOS E INTSANCIAS
Unidad 3 CLASES, OBJETOS E INTSANCIAS
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Clase8-Estadística
Clase8-EstadísticaClase8-Estadística
Clase8-Estadística
 
Clase7-Estadística
Clase7-EstadísticaClase7-Estadística
Clase7-Estadística
 
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOSUnidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
 
Clase6 Estadística
Clase6 EstadísticaClase6 Estadística
Clase6 Estadística
 

Similar a Herencia Clases Abstractas Interfaces Polimorfismo

3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdfRicardoOByrne1
 
S03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herenciaS03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herenciaelvisalberto2
 
Análisis y diseño de sistemas sesion 03 - modelado de dominio
Análisis y diseño de sistemas   sesion 03 - modelado de dominioAnálisis y diseño de sistemas   sesion 03 - modelado de dominio
Análisis y diseño de sistemas sesion 03 - modelado de dominioGianfrancoEduardoBra
 
Modelado orientado a objetos de bd
Modelado orientado a objetos de bdModelado orientado a objetos de bd
Modelado orientado a objetos de bdMaría Luisa Velasco
 
2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado uml2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado umlevelyna villamar
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Servicio Tecnico de Computadoras
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basicEdna Rheiner
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en javaGuille Villaf
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxDELIAMARINAHERAZOTUI
 

Similar a Herencia Clases Abstractas Interfaces Polimorfismo (20)

3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
S03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herenciaS03.s2 - Relaciones entre clases herencia
S03.s2 - Relaciones entre clases herencia
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Mod 6 1 introducción a uml
Mod 6 1 introducción a umlMod 6 1 introducción a uml
Mod 6 1 introducción a uml
 
Clase4 poo-uml
Clase4 poo-umlClase4 poo-uml
Clase4 poo-uml
 
Análisis y diseño de sistemas sesion 03 - modelado de dominio
Análisis y diseño de sistemas   sesion 03 - modelado de dominioAnálisis y diseño de sistemas   sesion 03 - modelado de dominio
Análisis y diseño de sistemas sesion 03 - modelado de dominio
 
Modelado orientado a objetos de bd
Modelado orientado a objetos de bdModelado orientado a objetos de bd
Modelado orientado a objetos de bd
 
2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado uml2. lenguaje de modelado unificado uml
2. lenguaje de modelado unificado uml
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
Clase 17
Clase 17Clase 17
Clase 17
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
 
Diagrama de dominio armando
Diagrama de dominio armandoDiagrama de dominio armando
Diagrama de dominio armando
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 

Más de Cindy Adriana Bohórquez Santana

265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...Cindy Adriana Bohórquez Santana
 

Más de Cindy Adriana Bohórquez Santana (20)

Proyecto parcial1t2018
Proyecto parcial1t2018Proyecto parcial1t2018
Proyecto parcial1t2018
 
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
 
20152 sfiec030121 1
20152 sfiec030121 120152 sfiec030121 1
20152 sfiec030121 1
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadas
 
12 conjuntos mapas1t2018
12 conjuntos mapas1t201812 conjuntos mapas1t2018
12 conjuntos mapas1t2018
 
11 colas prioridad1t2018
11 colas prioridad1t201811 colas prioridad1t2018
11 colas prioridad1t2018
 
10 colas1 t2018
10 colas1 t201810 colas1 t2018
10 colas1 t2018
 
09 pilas aplicaciones1t2018
09 pilas aplicaciones1t201809 pilas aplicaciones1t2018
09 pilas aplicaciones1t2018
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
06 listas1 t2018
06 listas1 t201806 listas1 t2018
06 listas1 t2018
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
04 recursividad1 t2018
04 recursividad1 t201804 recursividad1 t2018
04 recursividad1 t2018
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
Teoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_edTeoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_ed
 
Tema3 probabilidades
Tema3 probabilidadesTema3 probabilidades
Tema3 probabilidades
 
Ejercicios calculo probabilidades
Ejercicios calculo probabilidadesEjercicios calculo probabilidades
Ejercicios calculo probabilidades
 
5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)
 
424052848.tp 02 probabilidad
424052848.tp 02 probabilidad424052848.tp 02 probabilidad
424052848.tp 02 probabilidad
 
Ppt cap2b Estadística
Ppt cap2b EstadísticaPpt cap2b Estadística
Ppt cap2b Estadística
 

Último

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesal21510263
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfJessLeonelVargasJimn
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 

Último (20)

Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operaciones
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 

Herencia Clases Abstractas Interfaces Polimorfismo

  • 1. Unidad 4 HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO
  • 2. UML • UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. UML CONSTRUIR VISUALIZAR DOCUMENTAR ESPECIFICAR
  • 3. UML • Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado: • Diagrama de clases • Diagrama de componentes • Diagrama de objetos • Diagrama de estructura compuesta (UML 2.0) • Diagrama de despliegue • Diagrama de paquetes
  • 4. Diagrama de clases • Diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. • Son utilizados durante el proceso de análisis y diseño de los sistemas para crear el diseño conceptual de la información que se manejará.
  • 5. Representación de clases • En UML, una clase es representada por un rectángulo que posee tres divisiones
  • 7. Representación de Atributos y Métodos • Los atributos y los métodos de una clase pueden ser de tres tipos, que definen su grado de comunicación y visibilidad con el entorno, estos son: • Public (+): el atributo será visible tanto dentro como fuera de la clase. • Private (-): el atributo sólo será accesible desde dentro de la clase (sólo sus métodos pueden manipular los atributos). • Protected (#): el atributo no será accesible desde fuera de la clase, pero si podrá ser manipulado por métodos de la clase y de sus subclases. • Static (underlined)
  • 8.
  • 9. Ejercicio • Crear un proyecto UML llamado Asociacion en el que se diseñe un diagrama de clases que modele el proceso de dar de alta a cada una de las personas que se apuntan a una asociación. • De cada persona interesa saber sus datos básicos: DNI, nombre completo y fecha de nacimiento. Cuando cada nuevo socio se da de alta, se le asigna un código de asociado alfanumérico y se anota la fecha de alta. • La clase Fecha se modela con tres campos (día, mes y año) de tipo entero.
  • 10. Ejercicio • Se desea diseñar un diagrama de clases sobre la información de las reservas de una empresa dedicada al alquiler de automóviles, teniendo en cuenta que: • Es importante registrar la fecha de inicio y la fecha final de la reserva, el precio de alquiler de cada auto, litros de gasolina al momento de la reserva. • Todo auto siempre tiene asignado un garaje que no puede cambiar. De cada auto se requiere la matrícula, modelo, color y marca. • Cada reserva se realiza en una determinada agencia
  • 11. Ejercicio • Representa mediante un diagrama de clases la siguiente especificación sobre las personas que participan en una película: • De cada película se almacena el título, la sinopsis, el año, el género al que pertenece (drama, comedia, acción, terror, romance, aventura, scifi) y el país. • Sobre las personas que participan en la película es necesario conocer el nombre, los apellidos, la fecha de nacimiento y la nacionalidad. • Una persona puede participar en una película como actor, director, productor o guionista. • Una persona se considera actor si ha actuado al menos en una película. • Una película puede tener asociados varios trailers que son editados por una o más personas. No puede existir el trailer de una película hasta que existe la película.
  • 12.
  • 13.
  • 14. Interacciones entre clases (relaciones) • Herencia (Especialización/Generalización): • Composición: • Agregación: • Dependencia o Instanciación (uso): • Asociación: • Involutiva
  • 15. Relaciones Involutivas • Cuando la misma clase aparece en los dos extremos de la asociación.
  • 16. Agregación • La agregación es un tipo de asociación que indica que una clase es parte de otra clase. • Los componentes pueden ser compartidos por varios compuestos. • La destrucción del compuesto no conlleva la destrucción de los componentes. Una empresa agrupa a varios clientes
  • 17. Composición • Tipo de asociación fuerte donde la vida de la clase contenida debe coincidir con la vida de la clase contenedor. • Los componentes constituyen una parte del objeto compuesto. • Los componentes no pueden ser compartidos por varios objetos compuestos. • Si se elimina los objetos compuestos, se eliminan también sus componentes.
  • 19. Composición • Tenemos una clase Empresa. • Un objeto Empresa está a su vez compuesto por uno o varios objetos del tipo empleado. • El tiempo de vida de los objetos Empleado depende del tiempo de vida de Empresa, ya que si no existe una Empresa no pueden existir sus empleados.
  • 20. Diferencias entre Composición y Agregación Agregación Composición Varias asociaciones comparten los componentes Sí No Destrucción de los componentes al destruir el compuesto No Sí Cardinalidad a nivel compuesto Cualquiera 0..1 ó 1 Representación Rombo transparente Rombo negro
  • 21. Dependencia • Es una relación de uso entre dos clases (una usa a la otra). Esta relación es la más básica entre clases y comparada con los demás tipos de relación, la mas débil. • Tenemos una clase Impresora.. • Tenemos una clase Documento con un atributo texto. • La clase Impresora se encarga de imprimir los Documentos.
  • 22. Dependencia • La ClaseA usa a la ClaseB. • La ClaseA depende de la ClaseB. • Dada la dependencia, todo cambio en la ClaseB podrá afectar a la ClaseA. • se interpreta como que la ClaseA hace uso de la ClaseB ya sea instanciandola directamente, o bien, recibiéndola como parámetro de entrada en uno de sus métodos.
  • 23. Herencia • La relación entre super clases y subclases
  • 24.
  • 25. Adicionales • Los elementos adicionales que pueden aparecer en una relación de este tipo son los siguientes: • Rol: Identifica con nombres a los elementos que aparecen en los extremos de la línea que denota la relación, dicho nombre describe la semántica que tiene la relación en el sentido indicado. • Multiplicidad: La multiplicidad de una relación determina cuantos objetos de cada tipo intervienen en la relación. Presenta las siguientes características:
  • 26. Multiplicidad • Cada asociación tiene dos multiplicidades (una para cada extremo de la relación) • Para especificar hay que indicar que la multiplicidad mínima y máxima (mínima...máxima) • Una multiplicidad mínima mayor igual que 1 establece una relación obligatoria
  • 27.
  • 28.
  • 29. Herencia • Tipo especial de relación entre clases • Es uno de los aspectos que distinguen el Paradigma de Orientación a Objetos frente a otros paradigmas • Mecanismo que, bien utilizado, facilita la modificabilidad y reutilización de los diseños y el código. • La Herencia es uno de los 4 pilares de la programación orientada a objetos (POO) junto con la Abstracción, Encapsulación y Polimorfismo
  • 30. ¿En qué consiste? • En un principio, existen dos clases, a las que llamaremos padre (superclase o clase base) e hija (subclase o clase derivada). • Al igual que las herencias en la vida real, la clase hija pasa a tener lo que tiene la clase padre: • Atributos • Métodos • Un objeto de la clase hija es también un objeto de la clase padre. • En la clase hija se definen las diferencias respecto de la clase padre.
  • 31. ¿En qué consiste? • Si una clase B hereda de otra clase A entonces: • B incorpora la estructura (atributos) y comportamiento (métodos) de la clase A. • B puede incluir adaptaciones: • B puede añadir nuevos atributos • B puede añadir nuevos métodos • B puede redefinir métodos
  • 32. El proceso de herencia es transitivo • B puede redefinir métodos • B hereda de A • A es la superclase y B la subclase • C hereda de B y A • B y C son subclases de A • B es un descendiente directo de A • C es un descendiente indirecto de A
  • 33.
  • 34. Ejemplo • Por ejemplo en un proyecto que utilice objetos Taxi y objetos Autobus podríamos encontrarnos algo así:
  • 36.
  • 37. ¿Para qué se usa? • Para extender la funcionalidad de la clase padre. • Para especializar el comportamiento de la clase padre. • Ventajas • Se ahorra código Permite reutilizar código extendiendo su funcionalidad
  • 38. Desventajas • Se introduce una fuerte dependencia en la clase hija respecto a la clase padre • Un cambio en la clase padre puede tener efectos imprevistos en las clases hijas • Un objeto de una clase hija puede tener un comportamiento inconsistente con lo esperado de un objeto de la clase padre • Se establece una jerarquía o clasificación. • Si cambia el criterio de clasificación puede acarrear muchas modificaciones
  • 39. Tipos de herencia • Herencia simple • Una clase puede heredar de una única clase • Herencia múltiple • Una clase puede heredar de varias clases. Cabe decir también que en java no se permite la herencia múltiple
  • 41. Diseño de jerarquías de herencia • Generalización (Factorización ) • Se detectan clases con un comportamiento común • Ejemplo: Libro y Revista son Publicaciones • Especialización (Abstracción ) • Se detecta que una clase es un caso especial de otra • Ejemplo: Rectángulo es un tipo de Polígono
  • 42. Caso de estudio • Representa mediante un diagrama de clases la siguiente especificación sobre una empresa: • Una aplicación necesita almacenar información sobre empresas, sus empleados y sus clientes. • Ambos se caracterizan por su nombre y edad. • Los empleados tienen un sueldo bruto, los empleados que son directivos tienen una categoría, así como un conjunto de empleados subordinados. • De los clientes además se necesita conocer su teléfono de contacto. • La aplicación necesita mostrar los datos de empleados y clientes
  • 44. Caso de estudio • Representa mediante un diagrama de clases la siguiente especificación relacionada con una aplicación de gestión de pedidos. Dicha aplicación debe guardar la información de los pedidos que realizan sus clientes y la fecha en que se formalizan. • Los pedidos constan habitualmente de varios productos. El coste total del pedido se calcula a partir de los precios individuales de cada producto, así como de la cantidad e impuestos asociados a cada uno. Es importante mantener información sobre las existencias de cada producto con el fin de poder informar al cliente si habrá retrasos en la entrega del pedido. • El pedido podrá pagarse de una vez o en varios pagos. • Las formas de pago posible son: • Tarjeta de crédito (fecha de caducidad, número, VISA o MASTERCARD) • Efectivo (moneda) • Cheque (nombre, entidad bancaria) • El pedido podrá estar en uno de los siguientes estados: • pendiente, pagado, procesando, enviado y entregado.