Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre herança.

Tenho as seguintes classes no meu projeto Java:


public class Cliente {
    private String nome;
    private String CPF;

    //...getters e setters
}

public class Gerente extends Cliente{
    private String senha = "101010";

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

        return false;
    }
}

Ao instanciar um novo Gerente eu esperava utilizar o método autentica, porém o código não compila:

public class TesteBytebank {
    public static void main(String[] args) {
        Cliente fernando = new Gerente();

        //The method autentica() is undefined for the type Cliente
        //Erro de compilação na linha abaixo
        fernando.autentica();
    }
}

Algum javeiro pra me explicar o porque isso acontece?

1 resposta
solução!

O problema estava na linha

Cliente fernando = new Gerente();

Eu estava definindo a variavel fernando como um Cliente, quando na verdade eu deveria declarar o tipo como Gerente, ficando da seguinte forma:

Gerente fernando = new Gerente();