Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA: TAREA 3.
Ejercicios capítulo 3. Herencia
De acuerdo al primer libro de la bibliografía, realizar los siguientes ejercicios.
1) Ejercicio 9.3
(Uso de la composición en vez de la herencia) Muchos programas escritos con herencia
podrían escribirse mediante la composición, y viceversa. Vuelva a escribir la clase
EmpleadoBaseMasComision (figura 9.11) de la jerarquía EmpleadoPorComision-
EmpleadoBaseMasComision para usar la composición en vez de la herencia.
CODIGO
public class BasePlusCommissionEmployee4
{
private CommissionEmployee3 commissionEmployee;
private double baseSalary;
return commissionEmployee.getLastName();
}
2) Ejercicio 9.8
(Jerarquía de herencia Cuadrilatero) Escriba una jerarquía de herencia para las clases
Cuadrilatero, Trapezoide, Paralelogramo, Rectangulo y Cuadrado. Use Cuadrilatero como
la superclase de la jerarquía. Cree y use una clase Punto para representar los puntos en
cada figura. Agregue todos los niveles que sea posible a la jerarquía. Especifique las
variables de instancia y los métodos para cada clase. Las variables de instancia private de
Cuadrilatero deben ser los pares de coordenadas x-y para los cuatro puntos finales del
Cuadrilatero. Escriba un programa que cree instancias de objetos de sus clases, y que
imprima el área de cada objeto (excepto Cuadrilatero)
CODIGO
PROFESOR POR CUESTION DE TIEMPO Y POR QUE SE ME DIFICULTO REALIZARLOS CON
CUADRILATEROS LO REALICE CON FIGURAS GEOMETRICAS, PERO REALICE EL PROGRAMA
TAL COMO LO PLANTEA EL EJERCICIO.
package tarea3;
super();
this.valor1 = valor1;
return valor1;
this.valor1 = valor1;
super(valor1);
}
@Override
@Override
return Math.PI*this.valor1;
}
public class Cuadrado extends FiguraGeometrica {
@Override
@Override
return this.valor1*4;
super(valor1);
this.valor2 = valor2;
}
return valor2;
this.valor2 = valor2;
@Override
return this.valor1*this.valor2;
@Override
super(valor1);
this.valor2 = valor2;
return valor2;
}
public void setValor2(double valor2) {
this.valor2 = valor2;
}
@Override
return (this.valor1*this.valor2)/2;
@Override
super(valor1);
FiguraGeometrica figura;
System.out.println(figura.getClass());
System.out.println("Area: "+figura.getArea());
System.out.println("Perimetro: "+figura.getPerimetro());
System.out.println(figura.getClass());
System.out.println("Area: "+figura.getArea());
System.out.println("Perimetro: "+figura.getPerimetro());
System.out.println("Area: "+figura.getArea());
System.out.println("Perimetro: "+figura.getPerimetro());
System.out.println(figura.getClass());
System.out.println("Area: "+figura.getArea());
System.out.println("Perimetro: "+figura.getPerimetro());
System.out.println(figura.getClass());
System.out.println("Area: "+figura.getArea());
System.out.println("Perimetro: "+figura.getPerimetro());
}
EJECUCION
3) Ejercicio 9.14
(Jerarquía Empleado) En este capítulo estudió una jerarquía de herencia en donde la clase
EmpleadoBaseMasComision heredó de la clase EmpleadoPorComision. Sin embargo, no todos
los tipos de empleados son EmpleadoPorComision. En este ejercicio, creará una superclase
Empleado más general que extraiga los atributos y comportamientos de la clase
EmpleadoPorComision que son comunes para todos los objetos Empleado. Los atributos y
comportamientos comunes de todos los objetos Empleado son: primerNombre,
apellidoPaterno, numeroSeguroSocial, obtenerPrimerNombre, obtenerApellidoPaterno,
obtenerNumeroSeguroSocial y una parte del método toString. Cree una nueva superclase
Empleado que contenga estas variables y métodos de instancia, además de un constructor. A
continuación, vuelva a escribir la clase EmpleadoPorComision de la sección 9.4.5 como una
subclase de Empleado. La clase EmpleadoPorComision debe contener sólo las variables y
métodos de instancia que no se declaren en la superclase Empleado. El constructor de la clase
EmpleadoPorComision debe invocar al constructor de la clase Empleado y el método toString
de EmpleadoPorComision debe invocar al método toString de Empleado. Una vez que
complete estas modificaciones, ejecute las aplicaciones PruebaEmpleadoPorComision y
PruebaEmpleado-BaseMasComision usando estas nuevas clases para asegurar que las
aplicaciones sigan mostrando los mismos resultados para un objeto EmpleadoPorComision y
un objeto EmpleadoBaseMasComision, respectivamente.
CODIGO