Autor Tema: BlueJ sobreescribir métodos definidos en una superclase en su subclase CU00692B  (Leído 2161 veces)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
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).

Código: [Seleccionar]
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

Código: [Seleccionar]
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
   

Código: [Seleccionar]
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
« Última modificación: 18 de Junio 2017, 12:40 por Alex Rodríguez »

Jack_F

  • Visitante
Re:EJERCICIO (CU00692B)
« Respuesta #1 en: 04 de Mayo 2017, 20:54 »
Hola luis, aquí una explicación que te puede ayudar en tu problema:https://www.aprenderaprogramar.com/foros/index.php?topic=4991.0

Un saludo :D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".