Clase 7-Clases abstractas y polimorfismo.pptx

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

    ;..