Ejercicio CU00692B del curso de programación Java desde cero con BlueJ.
No me funciona como esperaba y le doy vueltas y revueltas y no encuentro el porque.
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).
package profesor;
public class Profesor {
private String nombre; private int edad; private int añosConsolidados; private double salarioBase;
public Profesor() { nombre = ""; edad = 0; añosConsolidados = 0; salarioBase = 0.0;}
public Profesor (String nombre, int edad, int AñosConsolidados, double SalarioBase) {
this.nombre = nombre; this.edad = edad; this.añosConsolidados = añosConsolidados; this.salarioBase = salarioBase; }
public String getNombre() { return nombre; }
public int getEdad() { return edad; }
public void setAñosConsolidados(int añosConsolidados) {this.añosConsolidados = añosConsolidados;}
public int getañosConsolidados(){return añosConsolidados;}
/**
* Método para obtener el salario base de profesor
* @return
*/
public double obtenerSalarioBase (){
salarioBase = (725 + añosConsolidados)*33.25;
return salarioBase;
}
public void mostrarDatos() {
System.out.println ("Datos Profesor. Profesor de nombre: " + getNombre() + "\n" +
" años consolidados: " + getañosConsolidados() + " " + "Y su salario:" + salarioBase);
}
} //Cierre de la clase
package profesor;
public class ProfesorEmerito extends Profesor {
private String IdProfesor;
private int añosEmerito;
private double SalarioProfesorEmerito;
public ProfesorEmerito() { super(); }
public ProfesorEmerito (String nombre, int edad, int AñosConsolidados, double SalarioBase) {
super(nombre,edad, AñosConsolidados, SalarioBase);
IdProfesor = "Unknown"; }
//Metodos de la clase getter y setter
public void setIdProfesor (String IdProfesor) { this.IdProfesor = IdProfesor; }
public String getIdProfesor () { return IdProfesor; }
/**
* Método para obtener el salario base de un profesor emerito
*/
public double obtenerSalarioBase (){
/*return super.obtenerSalarioBase()+(47.80 * añosEmerito); */
SalarioProfesorEmerito = super.obtenerSalarioBase();
SalarioProfesorEmerito = SalarioProfesorEmerito + 47.80* añosEmerito;
return SalarioProfesorEmerito;
}
public void mostrarDatos() {
super.mostrarDatos();
/*System.out.println ("Datos ProfesorEmerito. nombre: " + getNombre() + " " +
" con Id de profesor: " + getIdProfesor() + "" + "Profesor Emerito. Salario:" + SalarioProfesorEmerito);*/
}
} //Cierre de la clase
package profesor;
/**
*
* @author ITCO1724
*/
public class TestProfesor {
public static void main (String [ ] Args) {
Profesor profesor1 = new Profesor ("Esteban Puentes", 33, 20 , 780.50);
ProfesorEmerito ProfesorEmerito1 = new ProfesorEmerito("Antonio Ruiz", 54, 10, 525.10);
profesor1.obtenerSalarioBase();
profesor1.mostrarDatos();
ProfesorEmerito1.obtenerSalarioBase();
ProfesorEmerito1.mostrarDatos();
} //Cierre del main
} //Cierre de la clase