Autor Tema: Resolución ejercicio invocar métodos de superclases desde subclases CU00692B  (Leído 2033 veces)

dferna

  • Sin experiencia
  • *
  • Mensajes: 25
    • Ver Perfil
Hola  :D

Expongo la resolución al ejercicio sobre invocar métodos de superclases desde subclases. He añadido una clase de prueba que no se pedía en el enunciado para probar el funcionamiento de la aplicación.

Clase de Test
Código: [Seleccionar]
package test;

import aplicacion.*;

public class TestSobreescrituraMetodos {

public static void main(String[] args){
ProfesorEmerito pe1 = new ProfesorEmerito("David", 30, 10, 3);
double salarioBase = pe1.obtenerSalarioBase();
System.out.println("Este es el salario base: "+salarioBase);
}
}

Superclase Profesor
Código: [Seleccionar]
package aplicacion;

public class Profesor {

private String nombre;
private int edad;
private int anosConsolidados;

//Constructor
public Profesor(){
nombre = "";
edad = 0;
anosConsolidados = 0;
}
//Constructor sobrecargado
public Profesor(String nombre, int edad, int anosConsolidados){
this.nombre = nombre;
this.edad = edad;
this.anosConsolidados = anosConsolidados;
}

//Getters and Setters
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public int getAnosConsolidados() {
return anosConsolidados;
}
public void setAnosConsolidados(int anosConsolidados) {
this.anosConsolidados = anosConsolidados;
}

/**
* Método que obtiene el salario base de un profesor
*/
public double obtenerSalarioBase(){
double resultado = 725 + anosConsolidados * 33.25;
return resultado;
}
}

Subclase ProfesorEmerito
Código: [Seleccionar]
package aplicacion;

public class ProfesorEmerito extends Profesor{

private int anosEmerito;

//Constructor
public ProfesorEmerito(){
anosEmerito = 0;
}

//Constructor sobrecargado
public ProfesorEmerito(String nombre, int edad, int anosConsolidados,int anosEmerito){
super(nombre,edad,anosConsolidados);
this.anosEmerito = anosEmerito;
}

//Getters and Setters
public int getAnosEmerito() {
return anosEmerito;
}

public void setAnosEmerito(int anosEmerito) {
this.anosEmerito = anosEmerito;
}

/**
* Método que obtiene el salario base de un profesor emerito
*/
public double obtenerSalarioBase(){
double salarioBaseProfesor = super.obtenerSalarioBase();
double resultado = salarioBaseProfesor + (47.80 * anosEmerito);
return resultado;
}
}

Ejecución del programa
Citar
Este es el salario base: 1200.9

Saludos  ;)

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola dferna, todo bien

Si quisiéramos, podríamos declarar como tipo estático Profesor y como tipo dinámico ProfesorEmerito así:

Profesor pe1 = new ProfesorEmerito("David", 30, 10, 3);

Saludos

 

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