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

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
 

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

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
 

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
 
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)
 

Más de Andres Herrera Rodriguez

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

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
🦄💫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
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
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
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
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
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
🦄💫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
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
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
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
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
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 

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.