Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 25 de Abril 2015, 03:47

Título: Ejemplo sobreescritura métodos Java CU00692B invocar métodos de superclases
Publicado por: Dan_SB en 25 de Abril 2015, 03:47
Buenas noches chicos!

Ya en la recta final de este curso... he aprendido muchísimo con ustedes!, vengo a resolver el ejercicio 92° del curso con el siguiente enunciado:

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ódigos ahora!!

Clase Profesor:
Código: [Seleccionar]
package Profe;

public class Profesor {
    String nombre;
    int edad, añosConsolidados;
    public Profesor(String nombre, int edad, int añosConsolidados){
        this.nombre = nombre;
        this.edad = edad;
        this.añosConsolidados = añosConsolidados;
    }   
    public void setNombre(String dato){nombre = dato;}
    public void setEdad(int dato){edad = dato;}
    public void setAñosConsolidados(int dato){añosConsolidados = dato;}
    public String getNombre(){return nombre;}
    public int getEdad(){return edad;}
    public int getAñosConsolidados(){return añosConsolidados;}
    public double obtenerSalarioBase(){
        double salarioBase = 725 + (añosConsolidados * 33.25);
        return salarioBase;
    }
}
Clase ProfesorEmerito:
Código: [Seleccionar]
package Profe;

public class ProfesorEmerito extends Profesor{
    private int añosEmerito;
    public ProfesorEmerito(String nombre, int edad, int añosConsolidados){
        super(nombre,edad,añosConsolidados);
        añosEmerito = 0;
    }   
    public void setAñosEmerito(int dato){añosEmerito = dato;}
    public int getAñosEmerito(){return añosEmerito;}
     public double obtenerSalarioBase(){
        return super.obtenerSalarioBase() + (47.80* getAñosEmerito());
    }
}

Hice una pequeña prueba, calcule todo a mano con una calculadora y el resultado me dio igual que el programa!

(http://i.imgur.com/t1fhK6I.png)

(http://i.imgur.com/kngeAg5.png)

Saludos!
Título: Re:Ejemplo sobreescritura métodos Java CU00692B invocar métodos de superclases
Publicado por: Ogramar en 26 de Abril 2015, 16:55
Hola Dan! Ya en la recta final, y esperamos que sigas con nosotros bien con otros cursos o bien ayudando en los foros... Tu código está perfecto, solo comentarte una cosa, cuando crees una instancia por ejemplo ProfersorEmerito Loco, no usas mayúsculas como letra inicial de la instancia. Reserva la mayúscula como letra inicial para las clases y nombra las instancias siempre empezando con letras minúsculas.

Saludos!!
Título: Re:Ejemplo sobreescritura métodos Java CU00692B invocar métodos de superclases
Publicado por: Dan_SB en 27 de Abril 2015, 03:37
Gracias, claro que si estare aqui con vosotros :)

Cierto, aunque fuese una prueba debo continuar con las buenas practicas!
Saludos!