SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

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
K Manuel TN
 
Modularidad en Jav
Modularidad en JavModularidad en Jav
Modularidad en Jav
maynet
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
Alexandra Pérez
 
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
angel_toledo
 

Mais procurados (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
 

Semelhante a Laboratorio de polimorfismo

Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidad
Elena 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.pdf
RamonMartinespaa
 
Daniel espinosa garzon
Daniel espinosa garzonDaniel espinosa garzon
Daniel espinosa garzon
orus004
 
Conceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacionConceptualizacion lenguajes de programacion
Conceptualizacion lenguajes de programacion
orus004
 

Semelhante 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
 
vectores y matrices
vectores y matricesvectores y matrices
vectores y matrices
 
Funciones con vectores y matrices1
Funciones con vectores y matrices1Funciones con vectores y matrices1
Funciones con vectores y matrices1
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Tutorial c (3)
Tutorial c (3)Tutorial c (3)
Tutorial c (3)
 

Mais de Andres Herrera Rodriguez

Mais 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

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 

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.