Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: @mayakoski en 31 de Octubre 2019, 04:42

Título: Java super métodos superclases subclases variantes del mismo código CU00692B
Publicado por: @mayakoski en 31 de Octubre 2019, 04:42
Dejo mi respuesta al ejercicio CU00692B del curso básico de programación lenguaje Java, saludos

Código: [Seleccionar]
package claseCU00692B;

public class Profesor {
private String nombre;
private int edad;
private int aniosConsolidados;

public Profesor() {

}

public Profesor(String pNombre, int pEdad, int pAniosConsolidados) {
setNombre(pNombre);
setEdad(pEdad);
setAniosConsolidados(pAniosConsolidados);
}

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 getAniosConsolidados() {
return aniosConsolidados;
}
public void setAniosConsolidados(int aniosConsolidados) {
this.aniosConsolidados = aniosConsolidados;
}

public double obtenerSalarioBase() {
return (725 + this.getAniosConsolidados()*33.25);
}
}

Código: [Seleccionar]
package claseCU00692B;

public class ProfesorEmerito extends Profesor{

private int añosEmerito;

public ProfesorEmerito() {
super();
}

public ProfesorEmerito(String pNombre, int pEdad, int pAniosConsolidados, int pAniosEmerito) {
super(pNombre,pEdad,pAniosConsolidados);
setAñosEmerito(pAniosEmerito);

}


public int getAñosEmerito() {
return añosEmerito;
}

public void setAñosEmerito(int añosEmerito) {
this.añosEmerito = añosEmerito;
}

@Override
public double obtenerSalarioBase() {
return super.obtenerSalarioBase() + (47.80 * this.getAñosEmerito());
}

}

Código: [Seleccionar]
package claseCU00692B;

public class TestClaseCU00692B {

public static void main(String[] args) {

Profesor p1 = new ProfesorEmerito("Juan", 33, 10, 5);

System.out.println("El salario base del profesor es: " + p1.obtenerSalarioBase());

}

}
Título: Re:Java super métodos superclases subclases variantes del mismo código CU00692B
Publicado por: Alex Rodríguez en 31 de Octubre 2019, 22:01
Hola, veo el ejercicio muy bien resuelto. Si te fijas en la solución variante planteada en https://aprenderaprogramar.com/foros/index.php?topic=2425.0 hay pequeñas diferencias: en tu solución el constructor invoca métodos, en la solución variante no. En tu código el método obtenerSalarioBase invoca un método get para recuperar el valor del atributo, mientras que en la solución variante hace uso directo del atributo. Para mí ambas soluciones son correctas, y estos detalles podríamos decir que son pequeños detalles de los estilos de programación de cada persona, saludos