Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: adrit en 03 de Agosto 2015, 14:40

Título: Java invocar métodos de superclases desde subclases. Ejercicio CU00692B resuelto
Publicado por: adrit en 03 de Agosto 2015, 14:40
Hola!!

Dejo mi resolución para el ejercicio CU00692B

Código: [Seleccionar]
public class Profesor {
    private String nombre;
    private int edad;
    private int aniosConsolidados;
    public Profesor() { nombre = ""; edad = 0; aniosConsolidados = 0; }
    public Profesor (String nombre, int edad, int aniosConsolidados) {
        this.nombre = nombre;
        this.edad = edad;
        this.aniosConsolidados = aniosConsolidados;
    }
    public void setNombre(String nombre) { this.nombre=nombre;  }
    public void setEdad(int edad) { this.edad=edad;  }
    public void setAniosConsolidados (int aniosConsolidados) { this.aniosConsolidados=aniosConsolidados;  }
    public String getNombre() { return nombre;  }
    public int getAniosConsolidados () { return aniosConsolidados;  }
    public int getEdad() { return edad;  }
    public double obtenerSalarioBase () { return 725+aniosConsolidados*33.25; }
    public void mostrarDatos() {
        System.out.print("\nNombre : "+getNombre()+"\nEdad : "+getEdad()+
        "\nAños consolidados : "+getAniosConsolidados());
    }
}

Código: [Seleccionar]
public class ProfesorEmerito extends Profesor{
    private int aniosEmerito;
   
    public ProfesorEmerito (String nombre, int edad, int aniosConsolidados, int aniosEmerito){
        super(nombre, edad, aniosConsolidados);
        this.aniosEmerito=aniosEmerito;
    }
    public void setAniosEmerito(int aniosEmerito){
        this.aniosEmerito=aniosEmerito;
    }
    public int getAniosEmerito() { return aniosEmerito; }
    public double obtenerSalarioBase () {
        return super.obtenerSalarioBase()+47.80 * aniosEmerito;
    }     
}

Código: [Seleccionar]
public class Test {

    public static void main (String[] args) {
    ProfesorEmerito emerito1 = new ProfesorEmerito("Roberto Perez", 35, 20, 5);
    emerito1.mostrarDatos();
    System.out.println("\nSalario Base :"+emerito1.obtenerSalarioBase ());
    }
}

Gracias!!!

Título: Re:Invocar métodos de superclases desde subclases. Ejercicio (CU00692B) resuelto
Publicado por: Alex Rodríguez en 04 de Agosto 2015, 18:35
Hola adrit, todo bien

Recordar que puedes hacer uso del polimorfismo de Java si usas declaraciones con tipo estático el de superclase y tipo dinámico el de subclase, por ejemplo

Código: [Seleccionar]
Profesor emerito1 = new ProfesorEmerito("Roberto Perez", 35, 20, 5);
Tipo estático = Profesor
Tipo dinámico = ProfesorEmerito

Saludos
Título: Re:Java invocar métodos de superclases desde subclases. Ejercicio CU00692B resuelto
Publicado por: adrit en 04 de Agosto 2015, 18:49
De acuerdo Alex!

Gracias por la devolución.

Saludos!