Upload
carlosquinonez
View
222
Download
0
Embed Size (px)
Citation preview
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
1/11
Clases abstractas ypolimorfsmo
Prof. Manuel B. Snchez
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
2/11
El origen del trmino polimorsmo essimple: proviene de las palabras griegaspol !muchos" morphos !forma"multiforme.
El polimorsmo describe la capacidad #uetienen los objetos de comportarse de
diferentes maneras dependiendo desituaciones#ue se presenten al momentode la ejecucin.
Polimorfsmo
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
3/11
En muchos lengua$es orientados a ob$etos elpolimorsmose admite tanto en tiempo de e$ecuci%ncomo en tiempo de compilaci%n.
&a sobrecarga de funciones !funciones con el mismonombre' pero con cantidad de parmetros (o tipos deparmetros diferentes" es un e$emplo de polimorsmoen el momento de la compilaci%n.
En )ava el polimorsmo en tiempo de e$ecuci%n' selogra mediante el uso de herencia clases abstractaseinterfaces.
Polimorfsmo
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
4/11
*na variable es polimrfca' si puede almacenar ob$etos devarios tipos. Por e$emplo: el vector publicaciones en la claseNoticias.
+e forma similar si una variable es polim%rca' la llamada de
mtodos en esa variable tambin lo ser. Por e$emplo: en la clasenoticias el c%digo post.mostrar()es polim%rco' a #ue comose pudo observar en e$ercicios pasados' all, se invocar tanto elmtodo mostrar de PublicacionMensaje como el dePublicacionFoto, dependiendo de los ob$etos #ue se haanagregado a las noticias.
Esto se debe a #ue la variable post es polim%rca por#ue enalg-n momento puede contener la referencia de un ob$eto de tipoPublicacionMensaje en otro puede ser de tipoPublicacionFoto.
Polimorfsmo
Este tipo de polimorsmo se conoce como polimorfsmo entiempo de ejecucin debido a #ue las referencias de los
ob$etos solo se conocen cuando el programa entra ene$ecuci%n.
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
5/11
Para introducir este concepto plantearemos elsiguiente e$ercicio:
*n banco re#uiere un sistema #ue permita llevar el
control de las cuentas abiertas a los clientes' Eitendos tipos de cuenta #ue pueden ser /uenta corrienteo /uenta de ahorros. El sistema debe contar con lassiguientes opciones:
0. /rear /uenta
1. /onsultar /uenta
2. 3ealizar 4ransacci%n
5. Salir
Clases bstractas
Este e$ercicio esuna modicaci%ndel e$ercicio deBanco visto comoprctica
7/25/2019 Clase 7-Clases abstractas y polimorfismo.pptx
6/11
Clases bstractas
Este diagrama resuelve losre#uerimientos del banco pero noestablece distinci%n entre una
/uenta /orriente una /uenta de6horros.
Cuenta
7cliente: String7cuenta: String7saldo: double
88create99/uenta!cliente: Sring' cuenta: String' saldo: double"get/liente!": Stringget/uenta!": StringgetSaldo!": doubleretirar!monto: double": voiddepositar!monto: double": voidmostrarEstado/uenta!": void
!anco
88create99Banco!"menu!": intcrear/uenta!": voidconsultar/uenta!": voidrealizar3etiro!": voidrealizar+eposito!": voidiniciar!": void
7cuentas
;..