Buenas, aquí seguimos, desde ya muhas gracias a los que anteriormente se tomaron el tiempo de verificar mis soluciones presentadas.
Continuando con el curso y la llamada de un método de una superclase desde una subclase ... aquí dejo el código. Como siempre, "no me dejen pasar una" para seguir mejorando.
Algunos comentarios como
//declaracion de atributos
//constructores
//metodos
los sigo realizando aun para acostumbrarme a mantener un orden y en breve los estaria dejando de usar .aunque su uso en codigos mas complejos ayuda a la comprension del mismo
Código de la clase Profesor:
package CU00692B;
/**
* Clase Profesor , una superclase que tiene como atributos los siguientes campos
* Nombre, edad y numero de años consolidados
*/
public class Profesor{
//declaracion de atributos
private String nombre;
private int edad;
private int añosConsolidados;
//Constructos
/**
* Constructor de la clase Profesor sin parametrizar
* todas sus variables se iniciaran por defecto en 0 y ""
*/
public Profesor(){
nombre="";
edad=0;
añosConsolidados=0;
}
/**
* Constructor de la clase Profesor parametrizada
* @param nombre Nombre del profesor
* @param edad Edad del profesor
* @param añosConsolidados Los años consolidados del profesor
*/
public Profesor(String nombre,int edad, int añosConsolidados){
this.nombre=nombre;
this.edad=edad;
this.añosConsolidados=añosConsolidados;
}
//metodos de la clase Profesor
/**
* setNombre Permite establecer o modificar el nombre del profesor
*/
public void setNombre(String nombre){
this.nombre=nombre;
}
/**
* setEdad Permite establecer o modificar la edad del profesor
*/
public void setEdad(int edad){
this.edad=edad;
}
/**
* setAñosConsolidados permite establecer o modificar los años consolidados
*/
public void setAñosConsolidados(int añosConsolidados){
this.añosConsolidados=añosConsolidados;
}
/**
* getNombre Devuelve el nombre del profesor
*/
public String getNombre(){
return nombre;
}
/**
* getEdad Devuelve la edad del profesor
*/
public int getEdad(){
return edad;
}
/**
* getAñosConsolidados devuelve los años consolidados del profesor
*/
public int getAñosConsolidados(){
return añosConsolidados;
}
/**
* obtenerSalarioBase Devuelve el valor del salario base del profesor
*/
public double obtenerSalarioBase(){
double salarioBase=(725 + (añosConsolidados*33.25));
return salarioBase;
}
}
Código de la clase profesorEmerito
package CU00692B;
/**
* Clase ProfesorEmerito,sub-tipo(sub-clase) de clase Profesor
* hereda todos sus atributos y añade un atributo especifico
*/
public class ProfesorEmerito extends Profesor{
//declaracion de atributos
private int añosEmerito;
//constructor
/**
* Constructor sin parametrizar , inicializa todos los valores por defecto en 0 y ""
*/
public ProfesorEmerito(){
super();
añosEmerito=0;
}
/**
* Constructor parametrizado de la clase ProfesorEmerito
* @param nombre Nombre del Profesor
* @param eda Edad del profesor
* @param añosConsolidados Años consolidados del profesor
* @param añosEmerito Años emeritos del profesor
*/
public ProfesorEmerito(String nombre,int edad,int añosConsolidados,int añosEmerito){
super(nombre,edad,añosConsolidados);
this.añosEmerito=añosEmerito;
}
//metodos
/**
* setAñosEmerito Permite establecer o modificar los años Emeritos del profesor
*/
public void setAñosEmerito(int añosEmerito){
this.añosEmerito=añosEmerito;
}
/**
* getAñosEmerito devuelve el valor de añosEmerito
*/
public int getAñosEmerito(){
return añosEmerito;
}
/**
* obtenerSalarioBase Devuelve el salario base mas un plus por años emerito
*/
public double obtenerSalarioBase(){
double salarioBase=(super.obtenerSalarioBase() + (47.80*añosEmerito));
return salarioBase;
}
}
Como consulta añadida me gustaria que me indicaran si esta forma sería correcta tambien
public double obtenerSalarioBase(){
return (super.obtenerSalarioBase() + (47.80*añosEmerito));
}
Evitaría la declaracion de una variable local, pero entiendo que no en todos los casos
seria posible evitar la declaracion de la misma, ya sea por necesidad o por legilibilidad.