Autor Tema: Palabra clave super: invocar métodos de superclases desde subclases CU00692B  (Leído 2554 veces)

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Buenas, como siempre, aquí os dejo otro ejercicio, el CU00692B del taller práctico de programación Java desde cero, para que podéis aconsejarme sobre como lo he resuelto.

Código: [Seleccionar]
public class Profesor{
   
    String nombre;
    int edad;
    int añosConsolidados;
   
    public Profesor (String nombre, int edad, int añosConsolidados) {
       
        this.nombre = nombre;
        this.edad = edad;
        this.añosConsolidados = añosConsolidados;
   
    }
   
    public void nombre (String nombre) {
       
        this.nombre = nombre;
   
    }
   
    public void edad (int edad) {
       
        this.edad = edad;
   
    }
   
    public void añosConsolidados (int añosConsolidados) {
       
        this.añosConsolidados = añosConsolidados;
   
    }
   
    public String getNombre() {return nombre;}
   
    public int getEdad() {return edad;}
   
    public int añosConsolidados() {return añosConsolidados;}
   
    public double obtenerSalarioBase() {
       
        double salarioBase;
       
        salarioBase = (725 + (añosConsolidados * 33.25));
       
        System.out.println ("El salario es = " + salarioBase + "€");
       
        return salarioBase;
   
    }
}

Código: [Seleccionar]
public class ProfesorEmerito extends Profesor {
   
    int añosEmerito;
   
    public ProfesorEmerito (String nombre, int edad, int añosConsolidados, int añosEmerito) {
       
        super (nombre, edad, añosConsolidados);
       
        this.añosEmerito = añosEmerito;
   
    }
   
    public void añosEmerito (int añosEmerito) {
       
        this.añosEmerito= añosEmerito;
   
    }
   
    public int getAñosEmerito() {return añosEmerito;}
   
    public double obtenerSalarioBase() {
       
        double salarioBase;
       
        salarioBase = super.obtenerSalarioBase() + (47.8 * añosEmerito);
       
        System.out.println ("el salario vase es " + salarioBase + "€");
       
        return salarioBase;
    }
}

Sin más, un saludo y agradecer como siempre vuestra colaboración.
« Última modificación: 21 de Julio 2016, 13:08 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenas tardes umadara está todo bien

Como observación en el método

Código: [Seleccionar]
    public double obtenerSalarioBase() {
       
        double salarioBase;
       
        salarioBase = (725 + (añosConsolidados * 33.25));
       
        System.out.println ("El salario es = " + salarioBase + "€");
       
        return salarioBase;
   
    }

No es conveniente introducir System.out.println ("El salario es = " + salarioBase + "€");, decimos que cada método debe tener una finalidad única que en este caso sería devolver el salarioBase con un return. Si quieres mostrar algo por pantalla deberías hacerlo desde otro lugar (por ejemplo desde la clase con el método main).

Lo mismo ocurre en este método en la subclase.

Saludos

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Muchas gracias Mario, lo tendré en cuenta para futuras resoluciones.
Un saludo

 

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".