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

Meu Projeto não compila se eu referenciar

Desculpem se eu errei algum termo.

Eu fiz o código conforme a explicação do professor, e durante a aula parou de compilar. Ao concluir a aula, baixei o arquivo do professor, e esse também da o mesmo erro. Não sei arrumar. Nossos códigos estão iguais. Como é um erro de compilação, vou mostrar um print.

Meu projeto carregado no momento do print é o mesmo do link disponibilizado no final da aula 6 (https://github.com/alura-cursos/Curso-Java-parte-3-Entendendo-heran-a-e-interface/archive/capitulo6.zip)

Erro de compilaçãoComo eu realmente não sei o que esta acontecendo, e provavelmente esse erro vá me impedir de seguir com as aulas fazendo os testes, desde ja eu agradeço profundamente toda a ajuda que puderem dar. S2

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
10 respostas

Oi Katya, tudo bem?

Seu programa esta dando erro pq as propriedades que vc ta tentando chamar não foram definidas na classe Gerente. Ex: setNome, setCPf..

Você deve defini-las antes de chamar.

Mas essas classes deveriam ter sido herdadas da class Funcionario, gerente é filha de funcionário. =( Socorro

solução!

Katya

na linha 5 do TestaGerente.... onde esta escrito Autenticavel g1 = new Gerente(); substitua por Gerente g1 = new Gerente();

veja se compila.

A classe Gerente extende de Funcionário. Autenticavel é a interface que Gerente assina.

Entra ai a questão da referência acredito.

Se por exemplo você colocar "Funcionario g1 = new Gerente();" o setSenha e o autetica no TesteGerente vai parar de funcionar, porque Funcionário não assina Autenticavel.

Como Gerente assina o Autenticavel, vai funcionar se você colocar: "Gerente g1 = new Gerente();".

Lucas. Eu vi que compila assim (Gerente g1 = new Gerente();), mas dessa forma que eu mostrei foi o professor que compilou na aula. E como não deu certo eu achei que o erro era meu. Mas quem fez assim foi o professor. Esse arquivo que eu mostro na imagem é o que eu baixei do professor. E ficou com erro igual ao meu. É isso que me deixou confusa. Se tirar o "autentica" e colocar o gerente via funcionar, mas ai foge do que o professor tentou mostrar na aula, sobre interface.

Na aula ele faz Gerente g1 = new Gerente(); Funcionario g1 = new Gerente(); Autenticavel g1 = new Gerente();

e os tres compilam... no que eu fiz esse ultimo não funciona

Nossa... minha cabeça deu um nó

Veja o video da aula em que ele cria o Autenticavel, no TesteGerente ele escreveu:

Autenticavel referencia = new Cliente();

    Gerente g1 = new Gerente();

verifiquei aqui no arquivo da aula tbm está assim.

Autenticavel g1 = new Gerente(); não vai compilar pelos motivos que falei.

Recomendo rever o video da aula e tentar baixar o arquivo da aula novamente.

Lucas, obrigada por tentar ajudar, mas é como eu disse. Eu entendi muito bem a aula. Mas eu sinalizei que EU não consegui fazer o teste como o professor mostrou, pra mim não compilou. Viu? no print eu mostro exatamente do que eu to falando. O teste do professor deu certo. O meu não deu.

Mesmo assim, muito obrigada pela sua atenção.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi Katya, dê uma olhada na linha abaixo de onde esta a seta no seu print...

está lá o

Gerente g1 = new Gerente(); (linha 8)

é por isso que o dele compila.

falta isso na print da sua tela no inicio do post

o

Autenticavel gerente = new Gerente ();

ele colocou só como exemplo de referência.

Mas, Lucas, de novo, eu já entendi.

E continuo dizendo que a minha versão não se comporta como a do professor. Pq ele cria uma instancia com o autenticavel. É isso que eu to falando

Autenticavel gerente = new Gerente(); gerente.setNome("Marco");

não funciona como o

Gerente gerente = new Gerente(); g1.setNome("Marco")

Eu não estou entendendo pra que fazer isso. Um novo gerente tinha que poder acessar o nome. Eu realmente não entendi. Mas percebi que a falha é realmente no meu entendimento do conteúdo. Eu agradeço de verdade a sua atenção. Depois que eu vi que o botão de encerrar solucionado, vou fazer isso agora. Muito obrigada mesmo.