Professional Documents
Culture Documents
LABORATORIO N 07
POLIMORFISMO
CODIGO DEL CURSO:
Alumno(s)
Grupo
Ciclo
Fecha de entrega
II
Nota
Nro. DD-106
Pgina 1 de 6
I.- OBJETIVOS:
II.- SEGURIDAD:
Advertencia:
En este laboratorio est prohibida la manipulacin del
hardware, conexiones elctricas o de red; as como la
ingestin de alimentos o bebidas.
En algunos casos es posible crear clases Java que NO permitirn crear objetos, para ello la clase debe ser
creada como una clase abstracta
Para crear una clase como abstracta se debe colocar la palabra reservada abstract al inicio de la
clase
El polimorfismo permite crear variables que puedan comportarse de mltiples formas. Esto se consigue
referenciando con una misma variable a objetos de diferentes tipos.
El polimorfismo se puede implementar de 2 formas
Polimorfismo basado en la herencia con clases abstractas.
Polimorfismo basado en interfaces.
V.- RECURSOS:
En este laboratorio cada alumno trabajar con un equipo con Windows XP.
Este equipo cuenta con JDK instalado, as como alguno de los IDE (Entorno de Desarrollo Integrado)
como Eclipse o NetBeans.
VII.- PROCEDIMIENTO:
POLIMORFISMO BASADO EN CLASES ABSTRACTAS
1. Crear un nuevo proyecto en java denominado: PolimorfismoAbst
2. A continuacin se muestra en forma grfica la estructura de clases a crear:
Nro. DD-106
Pgina 2 de 6
5. Crear una nueva clase denominada Rectangulo que sea descendiente de la clase abstracta
FiguraGeometrica on el siguiente contenido:
public class Rectangulo extends FiguraGeometrica {
protected double largo, alto;
public Rectangulo(double a, double b) {
largo = a;
alto = b;
}
public double getLargo() {
return largo;
}
public void setLargo(double largo) {
this.largo = largo;
}
public double getAlto() {
Nro. DD-106
Pgina 3 de 6
return alto;
}
public void setAlto(double alto) {
this.alto = alto;
}
public double perimetro() {
return 2 * (largo + alto);
}
6. Crear una nueva clase denominada Cuadrado que sea descendiente de la clase abstracta
Rectangulo con el siguiente contenido:
public final class Cuadrado extends Rectangulo {
public Cuadrado(double lado) {
super(lado, lado);
}
public double getLado() {
return getLargo();
}
}
7. Adicionar una nueva clase al programa denominado ProgramaPrincipal con mtodo main()
8. En el mtodo main() de la nueva clase intente crear un nuevo objeto de la clase
FiguraGeometrica, observe que se muestra un error:
10. Modifique el cdigo del mtodo main() anterior como se indica a continuacin, luego ejecute el
programa y analice el resultado obtenido:
public class ProgramaPrincipal {
public static void main(String[] args) {
FiguraGeometrica fg;
fg = new Circulo(30);
System.out.println("Area circulo: " + fg.area());
System.out.println("Perimetro circulo: " + fg.perimetro() + "\n");
fg = new Rectangulo(40, 30);
System.out.println("Area Rectangulo: " + fg.area());
System.out.println("Perimetro Rectangulo: " + fg.perimetro() + "\n");
}
}
fg = new Cuadrado(20);
System.out.println("Area Cuadrado: " + fg.area());
System.out.println("Perimetro Cuadrado: " + fg.perimetro() + "\n");
Nro. DD-106
Pgina 4 de 6
Interfaz
Nro. DD-106
Pgina 5 de 6
6. Crear una nueva clase final Cuadrado que sea hija de la clase Rectangulo con el siguiente
contenido:
public class Cuadrado extends Rectangulo {
public Cuadrado(double lado) {
super(lado, lado);
}
public double getLado() {
return getLargo();
}
}
7. Implemente una clase denominada ProgramaPrincipal3 con el siguiente contenido:
public class ProgramaPrincipal {
public static void main(String[] args) {
IFiguraGeometrica fg;
fg = new Circulo(30);
System.out.println("(I)Area circulo: " + fg.area());
System.out.println("(I)Perimetro circulo: " + fg.perimetro() + "\n");
fg = new Rectangulo(40, 30);
System.out.println("(I)Area Rectangulo: " + fg.area());
System.out.println("(I)Perimetro Rectangulo: " + fg.perimetro() + "\n");
Nro. DD-106
Pgina 6 de 6
fg = new Cuadrado(20);
System.out.println("(I)Area Cuadrado: " + fg.area());
System.out.println("(I)Perimetro Cuadrado: " + fg.perimetro() + "\n");
}