You are on page 1of 4

MEDIA TÉCNICA DESARROLLO DE SOFTWARE

GUIA # 10
TEMA: Herencia

Estudiante:________________________________________ fecha____ Grado____Nota:_____


Duración: 6 horas
JUSTIFICACIÓN: Se pretende que el estudiante conozca la codificación en java sobre la herencia

OBJETIVOS : Identificar los métodos para establecer el manejo de herencia en java

Herencia: La herencia es un concepto que relaciona clases una encima de otra de un manera
jerárquica. Esto permite que los descendientes de una clase hereden todas las variables y métodos
de sus ascendientes, además de crear los suyos propios. A estos descendientes se les llama
subclases. Al padre inmediato de una clase se le llama su superclase. En este ejemplo

La clase base es Figura, y de ella van a heredar las clases Poligono y Circulo. A su vez, de
Poligono heredarán las clases Cuadrado y Triangulo. El diagrama esquemático de clases es el
siguiente:

Figura

Circulo Polígono

Triangulo Cuadrado

La clase base Figura solo tiene dos atributos: nombre de la figura y perimetro (longitud total
de su borde exterior) y, aparte del constructor, un único método llamado imprimirInformacion
que imprime por pantalla la información de la figura.

Aquí está la clase Figura programada:


public class Figura {
String nombre;
double perimetro;
public Figura(String nombre, double perimetro) {
this.nombre = nombre; this.perimetro = perimetro;
}
public void imprimirInformacion() {
System.out.println("Soy un "+nombre+" y mi perimetro es "+perimetro+" m");
}
public static void main(String[] args) {
Figura cuad= new Figura("cuadrado", 2*4);
Figura circ= new Figura("cuadrado" ,2);
Figura tria= new Figura("triangulo", (3*3));
cuad.imprimirInformacion();
Prep. por: Juan Carlos Pérez versión 1.0 1
www.esnips.com/web/desarrollo
circ.imprimirInformacion();
tria.imprimirInformacion();
}
}

En el método main, crea tres objetos y luego imprime la información de cada uno de ellos: un
cuadrado de lado 2 metros, un círculo de radio 2 metros y un triángulo de lado 3 metros.

Compila y ejecuta el programa. La salida por pantalla debe ser la siguiente:

Soy un cuadrado y mi perimetro es 8.0 m


Soy un cuadrado y mi perimetro es 2.0 m
Soy un triangulo y mi perimetro es 9.0 m

EJERCICIO 2 : Clase Círculo

Ahora vas a programar la clase Circulo, que hereda de la clase anterior Figura. Esta nueva
clase tiene un atributo más (aparte de los heredados), de tipo double, que almacena el radio del
círculo, que se le pasa en el constructor. El radio nos sirve para calcular el perímetro del círculo
(2*pi*radio).

Además esta clase sobreescribe el método anterior imprimirInformacion()


Para añadir un mensaje más explicativo con el valor del radio.
super
Hay una variable especial en Java llamada super, que se refiere directamente a los constructores de
la superclase. Este ejemplo define una nueva versión de circulo que utiliza el constructor super para
inicializar radio

El código de la clase Circulo es el siguiente:


public class Circulo extends Figura {
double radio;
public Circulo(double radio) {
super("Circulo", 2*Math.PI*radio);
this.radio = radio;
}
public void imprimirInformacion() {
System.out.println("Soy un circulo y mi radio es "+radio+" m, mi perimetro es
"+perimetro+" m");
}
public static void main(String[] args) {
Figura c1= new Circulo(2);
Figura c2= new Circulo(3);
c1.imprimirInformacion();
c2.imprimirInformacion();
}
}

El resultado es
Soy un círculo y mi radio es 2.0 m, mi perímetro es 12.5663704 m
Soy un círculo y mi radio es 3.0 m, mi perímetro es 18.849555600000002 m

Prep. por: Juan Carlos Pérez versión 1.0 2


www.esnips.com/web/desarrollo
EJERCICIO 3 : Clase Polígono

Ahora toca la clase Poligono, muy parecida a la clase Circulo anterior. La diferencia es que en
vez de radio los atributos del polígono son el número de lados y la longitud de cada lado, con los
que podemos calcular el valor del perímetro.

Este ejercicio consiste en programar la clase Poligono. En el método main crea dos polígonos,
uno de 3 lados con longitud 3 (triángulo) y otro de 4 lados con longitud 4 (cuadrado).

El esqueleto de la clase es el siguiente:

public class Poligono extends Figura {


int numeroLados;
double longitudLado;

public Poligono(String nombre, int numeroLados, double longitudLado) {


super(nombre,(numeroLados*longitudLado));
this.numeroLados=numeroLados;
this.longitudLado=longitudLado;
}
public void imprimirInformacion() {
System.out.println("Soy un polígono "+nombre+", tengo "+numeroLados+
" lados de longitud "+longitudLado+" m, mi perímetro es "+perimetro+ " m");
}

public static void main(String[] args) {


Figura c= new Poligono("Cuadrado",4,2);
Figura t= new Poligono("Triángulo",3,2);
c.imprimirInformacion();
t.imprimirInformacion();
}
}
La salida en pantalla debe ser la siguiente:
polígono Cuadrado, tengo 4 lados de longitud 2.0 m, mi perímetro es 8.0 m
Soy un polígono Triángulo, tengo 3 lados de longitud 2.0 m, mi perímetro es 6.0 m

EJERCICIO 4 : Clases Cuadrado y Triángulo


Sólo quedan las clases Cuadrado y Triangulo, que derivan de la clase Poligono. Estas dos
clases no tienen atributos nuevos y ni siquiera sobreescriben el método imprimirInformacion.
Programa las dos clases. En cada una de ellas, añade un main() que cree dos objetos.
Los esqueletos de las clases son los siguientes:

public class Triangulo extends Poligono {


public Triangulo(double longitudLado) {
super("Triangulo",3,longitudLado);
}
public static void main(String[] args) {
Figura t1= new Triangulo(2.0);
Figura t2= new Triangulo(5.0);
t1.imprimirInformacion();
t2.imprimirInformacion();
}
}

Prep. por: Juan Carlos Pérez versión 1.0 3


www.esnips.com/web/desarrollo
La salida en pantalla debe ser la siguiente:
Soy un polígono Triangulo, tengo 3 lados de longitud 2.0 m, mi perímetro es 6.0 m
Soy un polígono Triangulo, tengo 3 lados de longitud 5.0 m, mi perímetro es 15.0 m

public class Cuadrado extends Poligono {


public Cuadrado(double longitudLado) {
super("Cuadrado",4,longitudLado);
}
public static void main(String[] args) {
Figura c1= new Cuadrado(2.0);
Figura c2= new Cuadrado(5.0);
c1.imprimirInformacion();
c2.imprimirInformacion();
}
}

Actividades: Realizar cada uno de los ejercicios propuestos en la guia.


Explicación de algunos aspectos sobre la herencia.

Evaluación: revisar los ejercicios planteados en clase


1. Que la subclase Triangulo imprima los datos de 5 triangulos
2. Que la subclase cuadrado imprima los datos de 5 cuadrados
3. Que la subclase poligono imprima los datos de 5 poligonos

Bibliografía:Piensa en java, Eckel Bruce


www.esnips.com/web/desarrollo
www.java.com

Prep. por: Juan Carlos Pérez versión 1.0 4


www.esnips.com/web/desarrollo

You might also like