O meu código da classe Gerente está assim por equanto:
public class Gerente extends Funcionario{
    private int senha;
    public void setSenha(int senha) {
        this.senha = senha;
    }
    private int getSenha() {
        return this.senha;
    }
    public boolean autentica() {
        if (this.senha == getSenha()) {
            return true;
        } else {
            return false;
        }
    }
}
Já a minha main TesteGerente está assim:
public class TesteGerente {
    public static void main(String[] args) {
        Gerente g1 = new Gerente();
        g1.setNome("Renato");
        g1.setCpf("454545454544");
        g1.setSalario(5000.0);
        System.out.println(g1.getNome());
        System.out.println(g1.getCpf());
        System.out.println(g1.getSalario());
        g1.setSenha(2222);
        System.out.println(g1.autentica());
    }
}O instrutor criou o método autentica que recebe uma senha um int em seu parametro, porém logo em seguida criou um novo método o setSenha pois os atributos inicializam já zerados, então eramos obrigados a digitar a senha duas vezes na main, fiz uma pequena modificação e acho que ficou bem válido. O que vocês acharam?
 
            