SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
POLIMORFISMO
El polimorfismo permite la programación en forma general, en vez de la programación en forma específica. En
particular, permite escribir programas que procesen objetos que compartan la misma superclase (ya sea de
manera directa o indirecta) como si todos fueran objetos de la superclase; esto puede simplificar la
programación.
Con el polimorfismo podemos diseñar e implementar sistemas que puedan extenderse con facilidad; pueden
agregarse nuevas clases con sólo modificar un poco (o nada) las porciones generales del programa, siempre
y cuando las nuevas clases sean parte de la jerarquía de herencia que el programa procesa en forma
genérica. Las únicas partes de un programa que deben alterarse son las que requieren un conocimiento
directo de las nuevas clases que agregamos a la jerarquía.
Ejemplo de polimorfismo
Si la clase Rectángulo se deriva de la clase Cuadrilátero, entonces un objeto Rectángulo es una versión más
específica de un objeto Cuadrilátero. Cualquier operación (por ejemplo, calcular el perímetro o el área) que
pueda realizarse en un objeto Cuadrilátero también puede realizarse en un objeto Rectángulo. Estas
operaciones también pueden realizarse en otros objetos Cuadrilátero, como Cuadrado, Paralelogramo y
Trapezoide. El polimorfismo ocurre cuando un programa invoca a un método a través de una variable de la
superclase Cuadrilátero; en tiempo de ejecución, se hace una llamada a la versión correcta del método de la
subclase, con base en el tipo de la referencia almacenada en la variable de la superclase.
Un objeto de una subclase puede tratarse como un objeto de su superclase, lo cual permite varias
manipulaciones interesantes. Un programa puede crear un arreglo de variables de la superclase, que se
refieran a objetos de muchos tipos de subclases. Esto se permite, ya que cada objeto de una subclase es un
objeto de su superclase. No se puede tratar a un objeto de la superclase como un objeto de cualquiera de sus
subclases, porque un objeto superclase no es un objeto de ninguna de sus subclases. La relación “es un” se
aplica sólo hacia arriba por la jerarquía, de una subclase a sus superclases directas (e indirectas), pero no
viceversa (es decir, no hacia debajo de la jerarquía, desde una superclase hacia sus subclases).
Una referencia a la superclase puede usarse para invocar sólo a los métodos declarados en la superclase; si
se trata de invocar métodos que soló pertenezcan a la subclase, a través de una referencia a la superclase, se
producen errores de compilación. Si un programa necesita realizar una operación específica para la subclase
en un objeto de la subclase al que se haga una referencia mediante una variable de la superclase, el
programa primero debe convertir la referencia a la superclase en una referencia a la subclase, mediante una
técnica conocida como conversión descendente.
Lenguaje de
programación
Técnica profesional en desarrollo de software
Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co
Laboratorio
Polimorfismo
Nombre:_________________________________________________________________________
2
PRÁCTICA
1- cree un proyecto (paquete com.eam.lenguaje) la clase PruebaPolimorfismo con su respectivo método
<<main>>.
2- Programe el método toString de la clase Vehiculo usando el método format de String. Tenga en cuenta la
siguiente tabla:
CONVERSORVALOR
%b Booleano
%h Hashcode
%s Cadena
%c Caracter unicode
%d Entero decimal
%o Entero octal
%x Entero hexadecimal
%f Real decimal
%e Real notación científica
%g Real notación científica o decimal
%a Real hexadecimal con mantisa y exponente
%t Fecha u hora
Tabla 1. Conversor del método format.
El método <<format>> de la clase String permite concatenar diferentes elementos en una cadena. La
concatenación que ofrece este método permite que todos los elementos que se agreguen a la cadena queden
apuntando a la misma dirección de memoria. Como se puede notar en la tabla 1, para cada tipo de dato se
necesita de una letra diferente. Ver tejemplo en http://developando.com/blog/java-formatear-cadenas-string-format
3- Programe el método <<toString>> en la clase VehiculoAereo, use el método format de la clase String.
4- Programe los métodos toString para los objetos Cohete, Submarino, Avion y Bicicleta.
5- Declare he inicialice en el método main de la clase PruebaPolimorfismo arreglos de objetos que contengan:
3 Submarinos, 3 Aviones, 3 Bicicletas y 1 Cohete. Use el método mostrar de las clases anteriores para
verificar el contenido de cada una de ellas.
6- Cree un arreglo de 10 posiciones en el método main de la clase PruebaPolimorfismo y agregue los objetos
creados en el punto anterior.
¿Por qué cree que es posible agregar objetos de diferente tipo en un mismo arreglo?
7- Verifique que sucede si agrega un objeto tipo Vehiculo en una instancia tipo VehiculoTerrestre.
8- Verifique como es el comportamiento de los métodos de los objetos contenidos en el arreglo. Que necesita
para usar un método de una de las subclases específicas. Use el método getPlanetaDestino de la clase
cohete para mostrar los planetas que son destino de todos los cohetes.
3
9- Programe un método que reciba como parámetro un vehículo y retorne el número de veces que se repite la
misma instancia dentro de la lista. Ejemplo: si en la lista existen 6 submarinos y entra como parámetro un
vehículo tipo submarino, el valor retornado debe ser 6.
10- Programe un método que retorne el tipo de vehículo que tiene más llantas.
11- Programe un método que retorne el nombre de la instancia que tiene más elementos en la lista.
Ejemplo del método toString en una super clase
@Override
public String toString() {
return "Persona{" + "nombre=" + nombre + ", apellido=" + apellido + ", anio_nacimiento=" + anio_nacimiento + '}'+"n";
}
Ejemplo de imprimir el arrayList en un main
private static void imprimeArrayListProfesor(ArrayList<Profesor> lista) {
for (Profesor elemento : lista) {
System.out.print("Profesor: " + elemento);
}
}
ENTREGABLE
Enviar al correo jherrera@eam.edu.co el proyecto comprimido en zip la Practica realizada en su totalidad.
BIBLIOGRAFÍA
Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.

Más contenido relacionado

La actualidad más candente

Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4K Manuel TN
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la pooMagda Fernandez
 
Investigacion sobre carga de metodos
Investigacion sobre carga de metodosInvestigacion sobre carga de metodos
Investigacion sobre carga de metodosArisRojas4
 
Modularidad en Jav
Modularidad en JavModularidad en Jav
Modularidad en Javmaynet
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Bryangio2002
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F Mangel_toledo
 

La actualidad más candente (17)

Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Programación 1: modularización
Programación 1: modularizaciónProgramación 1: modularización
Programación 1: modularización
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Clase viii
Clase viiiClase viii
Clase viii
 
Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4Mapa conceptual del contenido de la unidad 4
Mapa conceptual del contenido de la unidad 4
 
Elementos caracteristicos de la poo
Elementos caracteristicos de la pooElementos caracteristicos de la poo
Elementos caracteristicos de la poo
 
4 Polimorfismo
4  Polimorfismo4  Polimorfismo
4 Polimorfismo
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Investigacion sobre carga de metodos
Investigacion sobre carga de metodosInvestigacion sobre carga de metodos
Investigacion sobre carga de metodos
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Modularidad en Jav
Modularidad en JavModularidad en Jav
Modularidad en Jav
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Definicion De Subclases Y Herencia H F M
Definicion De Subclases Y Herencia  H F MDefinicion De Subclases Y Herencia  H F M
Definicion De Subclases Y Herencia H F M
 

Similar a Laboratorio de polimorfismo

Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidadElena Perz
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Hack '
 
03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdfRamonMartinespaa
 
Daniel espinosa garzon
Daniel espinosa garzonDaniel espinosa garzon
Daniel espinosa garzonorus004
 
Conceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacionConceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacionorus004
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Funciones con vectores y matrices1
Funciones con vectores y matrices1Funciones con vectores y matrices1
Funciones con vectores y matrices1Marlene Pallo
 
Tutorial c (3)
Tutorial c (3)Tutorial c (3)
Tutorial c (3)ArmandoC42
 

Similar a Laboratorio de polimorfismo (20)

Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidad
 
4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfism oo
Polimorfism ooPolimorfism oo
Polimorfism oo
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 
03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf03. Curso .NET con C# autor Universidad de Alicante.pdf
03. Curso .NET con C# autor Universidad de Alicante.pdf
 
Daniel espinosa garzon
Daniel espinosa garzonDaniel espinosa garzon
Daniel espinosa garzon
 
Conceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacionConceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacion
 
Leccion 9 Java
Leccion 9 JavaLeccion 9 Java
Leccion 9 Java
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Funciones con vectores y matrices1
Funciones con vectores y matrices1Funciones con vectores y matrices1
Funciones con vectores y matrices1
 
vectores y matrices
vectores y matricesvectores y matrices
vectores y matrices
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Tutorial c (3)
Tutorial c (3)Tutorial c (3)
Tutorial c (3)
 

Más de Andres Herrera Rodriguez (17)

Lab archivos
Lab archivosLab archivos
Lab archivos
 
Lab excepciones propias
Lab excepciones propiasLab excepciones propias
Lab excepciones propias
 
unidad 5 excepciones propias
unidad 5 excepciones propiasunidad 5 excepciones propias
unidad 5 excepciones propias
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
3. unidad 4 polimorfismo
3. unidad 4 polimorfismo3. unidad 4 polimorfismo
3. unidad 4 polimorfismo
 
GuiaFTP
GuiaFTPGuiaFTP
GuiaFTP
 
Lab herencia
Lab herenciaLab herencia
Lab herencia
 
Guia mysql
Guia mysqlGuia mysql
Guia mysql
 
Lenguaje de programacion unidad 3 arreglos de objetos
Lenguaje de programacion unidad 3 arreglos de objetosLenguaje de programacion unidad 3 arreglos de objetos
Lenguaje de programacion unidad 3 arreglos de objetos
 
Lenguaje de programacion laboratorio arreglos
Lenguaje de programacion laboratorio arreglosLenguaje de programacion laboratorio arreglos
Lenguaje de programacion laboratorio arreglos
 
Formularios HTML
Formularios HTMLFormularios HTML
Formularios HTML
 
Botones HTML
Botones HTMLBotones HTML
Botones HTML
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
 
Lenguaje de programacion unidad 1 UML
Lenguaje de programacion unidad 1 UMLLenguaje de programacion unidad 1 UML
Lenguaje de programacion unidad 1 UML
 
programación WEB Unidad 1 html
programación WEB Unidad 1 htmlprogramación WEB Unidad 1 html
programación WEB Unidad 1 html
 
Lectura y ejemplos clases y objetos
Lectura y ejemplos clases y objetosLectura y ejemplos clases y objetos
Lectura y ejemplos clases y objetos
 

Último

Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfmiriamguevara21
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalRosarioChoque3
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 

Último (20)

Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdf
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 

Laboratorio de polimorfismo

  • 1. POLIMORFISMO El polimorfismo permite la programación en forma general, en vez de la programación en forma específica. En particular, permite escribir programas que procesen objetos que compartan la misma superclase (ya sea de manera directa o indirecta) como si todos fueran objetos de la superclase; esto puede simplificar la programación. Con el polimorfismo podemos diseñar e implementar sistemas que puedan extenderse con facilidad; pueden agregarse nuevas clases con sólo modificar un poco (o nada) las porciones generales del programa, siempre y cuando las nuevas clases sean parte de la jerarquía de herencia que el programa procesa en forma genérica. Las únicas partes de un programa que deben alterarse son las que requieren un conocimiento directo de las nuevas clases que agregamos a la jerarquía. Ejemplo de polimorfismo Si la clase Rectángulo se deriva de la clase Cuadrilátero, entonces un objeto Rectángulo es una versión más específica de un objeto Cuadrilátero. Cualquier operación (por ejemplo, calcular el perímetro o el área) que pueda realizarse en un objeto Cuadrilátero también puede realizarse en un objeto Rectángulo. Estas operaciones también pueden realizarse en otros objetos Cuadrilátero, como Cuadrado, Paralelogramo y Trapezoide. El polimorfismo ocurre cuando un programa invoca a un método a través de una variable de la superclase Cuadrilátero; en tiempo de ejecución, se hace una llamada a la versión correcta del método de la subclase, con base en el tipo de la referencia almacenada en la variable de la superclase. Un objeto de una subclase puede tratarse como un objeto de su superclase, lo cual permite varias manipulaciones interesantes. Un programa puede crear un arreglo de variables de la superclase, que se refieran a objetos de muchos tipos de subclases. Esto se permite, ya que cada objeto de una subclase es un objeto de su superclase. No se puede tratar a un objeto de la superclase como un objeto de cualquiera de sus subclases, porque un objeto superclase no es un objeto de ninguna de sus subclases. La relación “es un” se aplica sólo hacia arriba por la jerarquía, de una subclase a sus superclases directas (e indirectas), pero no viceversa (es decir, no hacia debajo de la jerarquía, desde una superclase hacia sus subclases). Una referencia a la superclase puede usarse para invocar sólo a los métodos declarados en la superclase; si se trata de invocar métodos que soló pertenezcan a la subclase, a través de una referencia a la superclase, se producen errores de compilación. Si un programa necesita realizar una operación específica para la subclase en un objeto de la subclase al que se haga una referencia mediante una variable de la superclase, el programa primero debe convertir la referencia a la superclase en una referencia a la subclase, mediante una técnica conocida como conversión descendente. Lenguaje de programación Técnica profesional en desarrollo de software Profesor: Andrés Herrera R. Mail: jherrera@eam.edu.co Laboratorio Polimorfismo Nombre:_________________________________________________________________________
  • 2. 2 PRÁCTICA 1- cree un proyecto (paquete com.eam.lenguaje) la clase PruebaPolimorfismo con su respectivo método <<main>>. 2- Programe el método toString de la clase Vehiculo usando el método format de String. Tenga en cuenta la siguiente tabla: CONVERSORVALOR %b Booleano %h Hashcode %s Cadena %c Caracter unicode %d Entero decimal %o Entero octal %x Entero hexadecimal %f Real decimal %e Real notación científica %g Real notación científica o decimal %a Real hexadecimal con mantisa y exponente %t Fecha u hora Tabla 1. Conversor del método format. El método <<format>> de la clase String permite concatenar diferentes elementos en una cadena. La concatenación que ofrece este método permite que todos los elementos que se agreguen a la cadena queden apuntando a la misma dirección de memoria. Como se puede notar en la tabla 1, para cada tipo de dato se necesita de una letra diferente. Ver tejemplo en http://developando.com/blog/java-formatear-cadenas-string-format 3- Programe el método <<toString>> en la clase VehiculoAereo, use el método format de la clase String. 4- Programe los métodos toString para los objetos Cohete, Submarino, Avion y Bicicleta. 5- Declare he inicialice en el método main de la clase PruebaPolimorfismo arreglos de objetos que contengan: 3 Submarinos, 3 Aviones, 3 Bicicletas y 1 Cohete. Use el método mostrar de las clases anteriores para verificar el contenido de cada una de ellas. 6- Cree un arreglo de 10 posiciones en el método main de la clase PruebaPolimorfismo y agregue los objetos creados en el punto anterior. ¿Por qué cree que es posible agregar objetos de diferente tipo en un mismo arreglo? 7- Verifique que sucede si agrega un objeto tipo Vehiculo en una instancia tipo VehiculoTerrestre. 8- Verifique como es el comportamiento de los métodos de los objetos contenidos en el arreglo. Que necesita para usar un método de una de las subclases específicas. Use el método getPlanetaDestino de la clase cohete para mostrar los planetas que son destino de todos los cohetes.
  • 3. 3 9- Programe un método que reciba como parámetro un vehículo y retorne el número de veces que se repite la misma instancia dentro de la lista. Ejemplo: si en la lista existen 6 submarinos y entra como parámetro un vehículo tipo submarino, el valor retornado debe ser 6. 10- Programe un método que retorne el tipo de vehículo que tiene más llantas. 11- Programe un método que retorne el nombre de la instancia que tiene más elementos en la lista. Ejemplo del método toString en una super clase @Override public String toString() { return "Persona{" + "nombre=" + nombre + ", apellido=" + apellido + ", anio_nacimiento=" + anio_nacimiento + '}'+"n"; } Ejemplo de imprimir el arrayList en un main private static void imprimeArrayListProfesor(ArrayList<Profesor> lista) { for (Profesor elemento : lista) { System.out.print("Profesor: " + elemento); } } ENTREGABLE Enviar al correo jherrera@eam.edu.co el proyecto comprimido en zip la Practica realizada en su totalidad. BIBLIOGRAFÍA Deitel, P. J. & Deitel, H. M. (2012). Como Programar en java. Novena edición. México: Prentice Hall.