0% encontró este documento útil (0 votos)
45 vistas22 páginas

Clase 7

La sesión 07 se centra en la herencia y el polimorfismo en programación orientada a objetos utilizando Java. Se explica la importancia de la herencia para la reutilización de código y la creación de jerarquías de clases, así como el polimorfismo que permite tratar objetos de diferentes clases de manera uniforme. Además, se discuten buenas prácticas en el uso de polimorfismo y casting, así como errores comunes a evitar.

Cargado por

EcoWorld
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas22 páginas

Clase 7

La sesión 07 se centra en la herencia y el polimorfismo en programación orientada a objetos utilizando Java. Se explica la importancia de la herencia para la reutilización de código y la creación de jerarquías de clases, así como el polimorfismo que permite tratar objetos de diferentes clases de manera uniforme. Además, se discuten buenas prácticas en el uso de polimorfismo y casting, así como errores comunes a evitar.

Cargado por

EcoWorld
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SESIÓN 07:

HERENCIA Y POLIMORFISMO

Docente del Curso


INTERACCION MOTIVACIONAL

Reflexión

Puedes ver el video:


[Link]
Logro de Aprendizaje

Al terminar la sesión el estudiante implementa herencia y


polimorfismo aplicando la programación orientada a objetos y el uso
del lenguaje de programación de Java en ejercicios propuestos por el
docente.
HERENCIA

¿Qué es la Herencia y por qué es importante?

¿Qué es la Herencia?
La herencia es un mecanismo fundamental en la programación orientada a
orientada a objetos que permite crear nuevas clases (subclases o clases
clases hijas) basadas en clases existentes (superclases o clases padres). La
padres). La subclase hereda atributos y métodos de la superclase,
superclase, promoviendo la reutilización de código y estableciendo una
estableciendo una relación "es-un" entre las clases.
¿Por qué es Importante?
La herencia facilita la creación de jerarquías de clases bien
bien estructuradas, modelando relaciones del mundo real de
real de manera intuitiva. Reduce la duplicación de código,
código, mejora la mantenibilidad y permite la extensión del
extensión del comportamiento de las clases existentes sin
existentes sin modificarlas directamente, cumpliendo con el
con el principio de abierto/cerrado.
RELACIÓN DE HERENCIA SIMPLE EN JAVA

La relación de herencia simple en Java implica que una clase puede


heredar de otra única clase. Esto significa que una subclase solo puede
heredar atributos y métodos de una clase padre
Ejemplos
Ejemplo de Código Java con UML
¿Qué es el Polimorfismo? Una Visión General

Adaptabilidad Flexibilidad Abstracción


El polimorfismo permite que Facilita la escritura de código Oculta la complejidad
que un objeto tome muchas genérico y reutilizable, que subyacente y presenta una
muchas formas. puede operar sobre objetos una interfaz simplificada para
de diferentes clases de para interactuar con los
Capacidad de una clase de manera uniforme. objetos.
de parecer y actuar como
otra.

Permite tratar objetos de diferentes clases de manera uniforme a través de una interfaz común.
interfaz común.

No solo simplifica el código, sino que también promueve la extensibilidad y la mantenibilidad a


mantenibilidad a largo plazo. Piénsenlo como la capacidad de un camaleón para adaptarse a su
adaptarse a su entorno.
Tipos de Polimorfismo: Estático vs. Dinámico

Polimorfismo Estático (Sobrecarga)


También conocido como "early binding" o "compile-
time polymorphism".
Polimorfismo Dinámico (Sobreescritura)
Se resuelve en tiempo de compilación. Implica tener
múltiples métodos con el mismo nombre pero También conocido como "late binding" o
diferentes parámetros dentro de la misma clase. "runtime polymorphism".

Se resuelve en tiempo de ejecución. Se logra


mediante la herencia y la sobrescritura de
métodos en las subclases.

El polimorfismo estático se logra mediante la sobrecarga de métodos, donde la decisión de qué


decisión de qué método ejecutar se toma en tiempo de compilación.

El polimorfismo dinámico, por otro lado, se basa en la sobrescritura de métodos en las subclases,
las subclases, permitiendo que la decisión se tome en tiempo de ejecución, lo que añade
añade flexibilidad al código.
Ejemplos:
Ejemplo con código Java y UML
2
Otro Ejemplo

3
1
CASTING EN JAVA

El casting en Java se refiere a la


conversión de un tipo de dato a
otro.
Se puede realizar tanto para tipos
primitivos como para objetos.
Ejemplos:
Otro Ejemplo
Casting en Java: Upcasting y Downcasting
Riesgos y Beneficios del Downcasting

Beneficios
Permite acceder a métodos y atributos específicos
específicos de la subclase.
Riesgos
Facilita el uso de objetos de la superclase como si ClassCastException: Si el objeto no es realmente
como si fueran de la subclase, cuando es necesario. una instancia de la subclase.
necesario.
Requiere verificación con instanceof para evitar
errores en tiempo de ejecución.
Ejemplo Práctico: Aplicando Polimorfismo y Arreglos con Casting
Buenas Prácticas en el Uso de Polimorfismo y Casting

1 Usar interfaces
Define un contrato que las
las clases deben cumplir,
promoviendo la flexibilidad.
flexibilidad. 2 Evitar Downcasting
innecesario
Reducir la necesidad de casting
mejora la legibilidad y
seguridad.
3 Priorizar Composición
Composición sobre
sobre Herencia
Ofrece más flexibilidad para
reutilizar código y evitar
problemas de herencia.
Errores Comunes y Cómo Evitarlos

ClassCastException
Ocurre al intentar downcastear un
un objeto a un tipo incorrecto. Usar
Usar instanceof antes del casting.

NullPointerException
Al acceder a un objeto nulo después de
un casting fallido. Validar que el objeto
no sea nulo.

Diseño inflexible
Abusar de la herencia y el casting
puede llevar a un diseño rígido.
Priorizar interfaces y composición.
composición.
CONCLUSIONES Y PREGUNTAS

También podría gustarte