2
respostas

Fiz o passo a passo conforme orientação e não deu certo

public class Gerente extends Funcionario { int senha;

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

public boolean autentica(int senha) {
    if (this.senha == senha) {
        return true;
    } else {
        return false;
    }
  public double getBonificacao(){  // dar erro nessa linha
  return super.getBonificacao() + super.getSalario(); // dar erro nessa linha
    }
}

}

2 respostas

aparece esses erros abaixo

Syntax error, insert ";" to complete LocalVariableDeclarationStatement The method getSalario() is undefined for the type Funcionario

at Gerente.autentica(Gerente.java:15)
at TesteGerente.main(TesteGerente.java:15)

Olá gleydson, o erro está exatamente onde você colocou o comentário:

//código omitido

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

        public double getBonificacao(){  // dar erro nessa linha
              return super.getBonificacao() + super.getSalario(); // dar erro nessa linha
        }
    }

O problema é que a declaração de um método está dentro de outro. Coloque o método getBonificacao() fora do método autentica() e teste novamente:

    // código omitido

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

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

Esperto ter ajudado e bons estudos!