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

Duvida ao invocar objetos

public static void main(String[] args) {


    Gerente rodolfo = new Gerente();

    rodolfo.setSenha(222);

    Funcionario rodolfo2 = new Gerente();

    rodolfo2.setSenha(1111);
    }

Nao consigo entender o pq ao invocar o "rodolfo2" daquele jeito ele nao aceita o método setSenha da classe gerente

1 resposta
solução!

Olá Matheus, tudo tranquilo?

Isso acontece porque, em tempo de compilação, o Java só enxerga o tipo da variável e não o que está dentro dela.

Isso é bom e ruim... o lado ruim é que agora estamos limitados a usar apenas os métodos da classe Funcionario e, em nosso caso, setSenha() é um método cuja utilização está restrita à classe Gerente().

Já o lado bom se chama polimorfismo, mas eu acredito não poder demonstrar esse recurso de forma clara sem criar mais dúvidas ainda... felizmente esse será justamente o assunto discutido nas próximas aulas desse curso. Mas não se esqueça, o Java só é capaz de enxergar o tipo da variável, portanto do ponto de vista dele, enquanto ainda estamos escrevendo nosso código, nosso acesso está limitado aos membros da classe Funcionario. Pelo menos por enquanto! ;)

Espero ter ajudado, se ficou alguma dúvida é só avisar!

Bons estudos!!