SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Uso de Polimorfismo.
El uso de Polimorfismo posee ciertos detalles que no fueron descritos en el ejemplo anterior, uno
de estos, que también tiene implicaciones en otros componentes es: Casting.

Uso de "Casting"
El término "Casting" viene de la palabra "Cast" que significa Molde, por lo que el termino literal es
Hacer un Molde, en Polimorfismo se lleva a cabo este proceso de "Casting" implícitamente, una
Guitarra se coloca en el molde de un Instrumento, un Triangulo en el molde de una Figura, sin
embargo, en ciertas ocasiones se requiere realizar un tipo de "Casting" que no es considerado
seguro en términos computacionales.
Anteriormente se mencionó que el "Casting" llevado a cabo con Polimorfismo es implícito, esto se
debe a que no se requiere de sintaxis especial, simplemente se convierte una Guitarra a un
Instrumento, sin embargo, para llevar una transformación en sentido opuesto se requiere de sintaxis
adicional para mantener la seguridad de transformación; analicemos: mientras se puede asegurar
que un Triangulo es una Figura ("Up-Casting"), una Figura no necesariamente es un Triangulo,
claro esta que lo puede ser, pero en Java se requiere definir explícitamente esta operación ("DownCasting").
El polimorfismo es una de las cualidades de más dificil comprensión de la POO. Una de las ventajas
de estos lenguajes es su flexibilidad y el polimorfismo una de las herramientas que potencian esta
cualidad. El polimorfismo tiene un uso muy gráfico cuando hacemos uso de la herencia.
El polimorfismo consiste en que toda referencia a un objeto de una clase específica puede tomar la
forma de una referencia a un objeto de una clase heredada a la suya. Con el polimorfismo (sig. Varias
formas) se consigue que las instancias de una clase padre puedan hacer uso de las funcionalidades
de la clases hijas: misma instancia que se comporta de varias (poli) maneras (morfismo).

Ejemplo:
Public class Animal(){
public void habla(){
System.out.println("No se que soy");
}
}
Public class Perro() extends Animal{
public void() habla(){
System.out.println("Guau");
}
}
Public class Gato() extends Animal{
public void() habla(){
System.out.println("Miau");
}
}
Public class Zoo(){
public static void main(String[] args) {
Animal animal = new Gato(); animal. Habla(); animal=new Perro(); animal. Habla();
}
}
El resultado por consola sera:
"Miau"
"Guau"

Más contenido relacionado

Más de Manuel Alejandro Hernandez Sanchez

Más de Manuel Alejandro Hernandez Sanchez (20)

Introducción
IntroducciónIntroducción
Introducción
 
Herencia
HerenciaHerencia
Herencia
 
Tipo estático y tipo dinámico
Tipo estático y tipo dinámicoTipo estático y tipo dinámico
Tipo estático y tipo dinámico
 
Introducción
IntroducciónIntroducción
Introducción
 
Enlace dinámico
Enlace dinámicoEnlace dinámico
Enlace dinámico
 
Clase base
Clase baseClase base
Clase base
 
Por qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadoresPor qué java no soporta la sobre carga de operadores
Por qué java no soporta la sobre carga de operadores
 
Sobrecarga de constructores
Sobrecarga de constructoresSobrecarga de constructores
Sobrecarga de constructores
 
Recolección de basura
Recolección de basuraRecolección de basura
Recolección de basura
 
Retorno de valores
Retorno de valoresRetorno de valores
Retorno de valores
 
Metodos de mensajes
Metodos de mensajesMetodos de mensajes
Metodos de mensajes
 
La destrucción del objeto
La destrucción del objetoLa destrucción del objeto
La destrucción del objeto
 
Acceso al objeto
Acceso al objetoAcceso al objeto
Acceso al objeto
 
Agregar un metodo que toma parametros
Agregar un metodo que toma parametrosAgregar un metodo que toma parametros
Agregar un metodo que toma parametros
 
Asignación de variables de referencia de objeto
Asignación de variables de referencia de objetoAsignación de variables de referencia de objeto
Asignación de variables de referencia de objeto
 
Una clase simple.
Una clase simple. Una clase simple.
Una clase simple.
 
c) Métodos
c) Métodosc) Métodos
c) Métodos
 
a) Introducción
a) Introduccióna) Introducción
a) Introducción
 
Asociaciones
AsociacionesAsociaciones
Asociaciones
 
Los objetos de software
Los objetos de softwareLos objetos de software
Los objetos de software
 

Uso de polimorfismo

  • 1. Uso de Polimorfismo. El uso de Polimorfismo posee ciertos detalles que no fueron descritos en el ejemplo anterior, uno de estos, que también tiene implicaciones en otros componentes es: Casting. Uso de "Casting" El término "Casting" viene de la palabra "Cast" que significa Molde, por lo que el termino literal es Hacer un Molde, en Polimorfismo se lleva a cabo este proceso de "Casting" implícitamente, una Guitarra se coloca en el molde de un Instrumento, un Triangulo en el molde de una Figura, sin embargo, en ciertas ocasiones se requiere realizar un tipo de "Casting" que no es considerado seguro en términos computacionales. Anteriormente se mencionó que el "Casting" llevado a cabo con Polimorfismo es implícito, esto se debe a que no se requiere de sintaxis especial, simplemente se convierte una Guitarra a un Instrumento, sin embargo, para llevar una transformación en sentido opuesto se requiere de sintaxis adicional para mantener la seguridad de transformación; analicemos: mientras se puede asegurar que un Triangulo es una Figura ("Up-Casting"), una Figura no necesariamente es un Triangulo, claro esta que lo puede ser, pero en Java se requiere definir explícitamente esta operación ("DownCasting"). El polimorfismo es una de las cualidades de más dificil comprensión de la POO. Una de las ventajas de estos lenguajes es su flexibilidad y el polimorfismo una de las herramientas que potencian esta cualidad. El polimorfismo tiene un uso muy gráfico cuando hacemos uso de la herencia. El polimorfismo consiste en que toda referencia a un objeto de una clase específica puede tomar la forma de una referencia a un objeto de una clase heredada a la suya. Con el polimorfismo (sig. Varias formas) se consigue que las instancias de una clase padre puedan hacer uso de las funcionalidades de la clases hijas: misma instancia que se comporta de varias (poli) maneras (morfismo). Ejemplo: Public class Animal(){ public void habla(){ System.out.println("No se que soy"); } } Public class Perro() extends Animal{ public void() habla(){ System.out.println("Guau"); } } Public class Gato() extends Animal{ public void() habla(){ System.out.println("Miau");
  • 2. } } Public class Zoo(){ public static void main(String[] args) { Animal animal = new Gato(); animal. Habla(); animal=new Perro(); animal. Habla(); } } El resultado por consola sera: "Miau" "Guau"