Hola a todos ! Dejo el código del ejercicio propuesto en la clase CU00692B del tutorial pdf de programación Java. Desde ya muchas gracias por la atención. Saludos
Luis
EJERCICIO
Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.
Como atributos de la superclase tendremos nombre (String), edad (int) y añosConsolidados (int). Un método de la superclase será double obtenerSalarioBase () que obtendrá el salario base como (725 + el número de años consolidados multiplicado por 33.25).
En la subclase se trabajará con el campo adicional añosEmerito. Queremos hacer lo siguiente: sobreescribir el método obtenerSalarioBase () en la subclase para calcular el salario base del profesor emérito invocando mediante la palabra clave super al cálculo del salario base de Profesor y añadiéndole la cantidad de (47.80 * añosEmerito).
Clase Profesor
public class Profesor { //Ejemplo aprenderaprogramar.com
private String nombre;
private int edad;
private int aniosConsolidados;
private double salarioBase;
public Profesor (String nombre, int edad, int aniosConsolidados) {
this.nombre=nombre; this.edad=edad; this.aniosConsolidados=aniosConsolidados;
salarioBase=0;
obtenerSalarioBase();
}
public double obtenerSalarioBase(){
salarioBase=(725+aniosConsolidados)*33.25;
return salarioBase;}
public void mostrarDatos() {
System.out.println ("Datos Profesor. nombre: "+nombre+", edad: "+edad+", consolidados :"+aniosConsolidados); }
public void mostrarSalario(){
System.out.println ("Salario base profesor:"+salarioBase);
}
} //Cierre de la clase
Clase ProfesorEmerito
public class ProfesorEmerito extends Profesor { //Ejemplo aprenderaprogramar.com
private int aniosEmerito;
private double salarioBase;
public ProfesorEmerito (String nombre, int edad, int aniosConsolidados, int aniosEmerito) {
super(nombre, edad, aniosConsolidados);
this.aniosEmerito=aniosEmerito;
obtenerSalarioBase();
}
public double obtenerSalarioBase(){
salarioBase = super.obtenerSalarioBase() + (47.80*aniosEmerito);
return salarioBase;
}
public void mostrarDatos() {
super.mostrarDatos();
System.out.println ("Años como profesor emérito :"+aniosEmerito); }
public void mostrarSalario(){
System.out.println ("Salario base profesor emérito:"+salarioBase);
}
} //Cierre de la clase
Clase ListinProfesores
import java.util.ArrayList; //Ejemplo aprenderaprogramar.com
public class ListinProfesores{
private ArrayList <Profesor> listinProfesores;
//Constructor
public ListinProfesores () {
listinProfesores = new ArrayList <Profesor> (); }
//Métodos
public void addProfesor (Profesor profesor) {
listinProfesores.add(profesor);} // Cierre método addProfesor
public void listar() {
System.out.println ("Se procede a mostrar los datos de los profesores existentes en el listín");
for (Profesor tmp: listinProfesores) { //Uso de for extendido
tmp.mostrarDatos(); tmp.mostrarSalario();}
} //Cierre método
} //Cierre de la clase
Clase Test (método main)
public class Test {
public static void main (String [ ] Args) {
Profesor profesor1 = new Profesor ("Juan Lopez", 53, 25);
ProfesorEmerito emerito1 = new ProfesorEmerito("José Luis Perez", 54, 20, 10);
ListinProfesores listin1 = new ListinProfesores ();
listin1.addProfesor(profesor1);
listin1.addProfesor(emerito1);
listin1.listar();} //Cierre del main
} //Cierre de la clase