Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida sobrecarga: o segundo método autentica não compila

public class Gerente extends Funcionario {

private int senha;
private int login;

public boolean autentica(int senha, int login) {
    if (this.senha == senha && this.login == login ) {
        return true;
    }
    return false;
}

public boolean autentica(String login, String senha) {
    if (this.senha == senha && this.login == login ) {
        return true;
    }
    return false;
}

public void setSenha(int senha) {
    this.senha = senha;
}

public int getSenha() {
    return senha;
}

public double getBonificacao() {

    return super.getBonificacao() + super.getSalario();

}
3 respostas

Bom dia Julia, no segundo você está comparando tipos diferentes, int e String, por isso não compila

Olá Guilherme, você tem alguma sugestão para fazer isso funcionar?

solução!

Você pode pode converter seu int para uma string e usar o equals para comparar, por exemplo

String.valueOf(this.senha).equals(senha)

Como nesse caso ambos vão ser objetos, se fizer a comparação com o '=' o java vai entender que esta querendo comparar o endereço dos objetos;