Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

[Duda] Duda de operación con getBonificacion de Gerente

Buenas comunidad. tengo una duda sobre el resultado de getBonificacion de la clase Gerente dado que a mi me da como resultado solo 600 y no 6600. A continución muestro el código

Clase Funcionario:

package byteBank_heredado;

public class Funcionario {

    private String nombre;
    private String documentoIdentidad;
    private double salario;
    private int tipo;

    public Funcionario() { // constructor

    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDocumentoIdentidad() {
        return documentoIdentidad;
    }

    public void setDocumentoIdentidad(String documento) {
        this.documentoIdentidad = documento;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public double getBonificacion() {
        // si tipo = 1 es gerente
        // si tipo es 0 es funcionario
        return this.salario * 0.1; // 10%
    }

    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

}

Clase Gerente:

package byteBank_heredado;
//                   extiende de 
public class Gerente extends Funcionario {

    private String clave;

    public void setClave(String clave) {
        this.clave = clave;
    }

     public boolean iniciarSesion(String clave) {
            if(this.clave == clave) {
                return true;
            } else {
                return false;
            }
          //return clave =="AluraCursosOnLine";
        }

    // Sobre-escrtitura de metodo
     public double getBonififacion() {
         return super.getSalario() + super.getBonificacion();
     }


}

Y aqui "TestGerente":

package byteBank_heredado;
//                   extiende de 
public class Gerente extends Funcionario {

    private String clave;

    public void setClave(String clave) {
        this.clave = clave;
    }

     public boolean iniciarSesion(String clave) {
            if(this.clave == clave) {
                return true;
            } else {
                return false;
            }
          //return clave =="AluraCursosOnLine";
        }

    // Sobre-escrtitura de metodo
     public double getBonififacion() {
         return super.getSalario() + super.getBonificacion();
     }


}

Mi duda es que el profesor tiene como resultado "6600" con un sueldo de 6000,pero cuando uso "GetBonifiacion()" solo da el resultado de "600"

super.getSalario() + super.getBonificacion();

Así esta el código, pero no sé por qué no da el resultado, gracias de antemano.

5 respuestas

Hola buenas tardes mirando tu código no veo error alguno, quizas no guardaste los cambios y por eso se refleja ese resultado o quizas este mal el valor del saldo gerente.setSalario(xxx); Espero que sea de ayuda saludos :)

Hola, Thalia, gracias por responder me.

Vieras que guarde,pero a un así no funciona. Igualmente , gracias por responder.

Hola, creo que el error es que esta llamando el metodo getBonificacion de la clase Funcionario, por lo tanto en ese solo retorna el valor de la bonificacion, no el valor de la suma del salario mas la bonificacion, que si lo hace el metodo sobreescrito de la clase Gerente.

creo que esta haciendo la instancia incorrecta para imprimir el resultado, tal vez tiene Funcionario gerente = new Funcionario(); y no Gerente gerente = new Gerente(); al llamar el metodo getBonificacion se dirige al de la clase Funcionario.

Tal vez la explicacion no fue la mejor pero espero haber ayudado, saludos!

Falta que nos muestre la clase TestFuncionario para intentar ver el error

solución!

Hola caballeros, disculpen la demora en responderles, he estado algo lejos por unos asuntos.

Primero, quiero agradecerles el interés el su ayuda, muchas gracias.

Revisando el código noté que en la clase Gerente, resulta que el método esta así:

 public double getBonififacion() {
         return super.getSalario() + super.getBonificacion();
     }

Bonifi(fa)cion. Entonce, cuando llamaba al otro método

Nuevamente gracias por la voluntad de ayudarme.