Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: pedro,, en 23 de Julio 2015, 21:09

Título: Java Ejercicio resuelto Usar super: invocar métodos de superclases CU00692B
Publicado por: pedro,, en 23 de Julio 2015, 21:09
Hola aquí les dejo la resolución de mi ejercicio.

El ejercicio pedía:

Citar
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
Código: [Seleccionar]
public class Profesor{
    private String nombre;
    private int edad;
    private int annosConsolidados;
    public Profesor(){
        nombre = "";
        edad = 0;
        annosConsolidados = 0;
    }
    public Profesor(String nombre, int edad, int annosConsolidados){
        this.nombre =  nombre;
        this.edad = edad;
        this.annosConsolidados = annosConsolidados;
    }
    public void setNombre (String nombre){ this.nombre = nombre; }
    public void setEdad (int edad){ this.edad = edad; }
    public void setAnnosConsolidado (int annosConsolidados){ this.annosConsolidados = annosConsolidados; }
    public String getNombre(){ return nombre; }
    public int getEdad(){ return edad; }
    public int getAnnosConsolidados(){ return annosConsolidados; }
    public void mostrarDatos(){
        System.out.println("---------------------------------");
        System.out.println("Nombre: " + nombre + "\nEdad: " + edad + "\nAños Consolidados: " + annosConsolidados);
    }
    public double obtenerSalarioBase(){
        return (725 + annosConsolidados)*33.25;
    }
}

clase ProfesorEmerito
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor{
    private int annosEmerito;
    public ProfesorEmerito(){
        super();
        annosEmerito = 0;
    }
    public ProfesorEmerito(String nombre, int edad, int annosConsolidados, int annosEmerito){
        super(nombre, edad, annosConsolidados);
        this.annosEmerito = annosEmerito;
    }
    public void setAnnosEmerito(int annosEmerito){ this.annosEmerito= annosEmerito; }
    public int getAnnosEmerito(){ return annosEmerito; }
    public void mostrarDatos(){
        super.mostrarDatos();
        System.out.println("Años como Emerito: " + annosEmerito);
    }
    public double obtenerSalarioBase(){
        return (super.obtenerSalarioBase() + (47.80 * annosEmerito));
    }
}

clase TestProfesor
Código: [Seleccionar]
public class TestProfesor{
    public static void main(){
        Profesor profesorEmerito1 = new ProfesorEmerito("Pedro", 33, 22, 15);
        Profesor profesorEmerito2 = new ProfesorEmerito("Juan", 66, 44, 27);
        profesorEmerito1.mostrarDatos();
        System.out.println("Sueldo anual: " + profesorEmerito1.obtenerSalarioBase());
        profesorEmerito2.mostrarDatos();
        System.out.println("Sueldo anual: " + profesorEmerito2.obtenerSalarioBase());
    }
}
Título: Re:Java Ejercicio resuelto Usar super: invocar métodos de superclases CU00692B
Publicado por: Mario R. Rancel en 24 de Julio 2015, 22:21
Hola Pedro has cumplido perfectamente con lo que pedía el ejercicio, mi enhorabuena.

Saludos
Título: Re:Java Ejercicio resuelto Usar super: invocar métodos de superclases CU00692B
Publicado por: pedro,, en 25 de Julio 2015, 00:30
gracias por tu tiempo y los ánimos