Antes de tudo, eu já resolvi essa questão. Eu queria mais contar um relato de alguém que passou por um problema específico e fiquei mais de 1 hora para resolvê-lo.
E um detalhe importante, estava usando o VS Code ao invés do Eclipse (porque achei muito melhor o VS Code, ele faz tudo que o Eclipse faz, só que melhor).
Primeiramente, quando chegou na parte de fazer uma classe herdada, do Funcionário para gerente, eu segui o código que o professor passou:
public class Gerente extends Funcionario
Mas ao fazer isso, aparecia para mim o erro:
Implicit super constructor Funcionario() is undefined for default constructor. Must define an explicit constructor
Fui pesquisar a fonte do erro, e todos apontavam um problema no acesso da bibilioteca do Java no Eclipse, mas como tava no VS Code, não sabia como adaptar isso. Tem até um caso disso em um fórum da Alura.
Depois de um tempo, descobri como colocar a biblioteca do Java no VS Code, mas mesmo assim não deu certo. Tava sem esperanças do que fazer, até que eu vejo que o VS Code me dá uma sugestão de correção (por isso eu amo esse programa) e eu descobri o do porquê do erro.
Eu tinha ALTERADO O CONSTRUTOR da classe Funcionário:
public class Funcionario {
private String Nome;
private String CPF;
private double Salario;
public Funcionario (String nome,String cpf){
this.Nome = nome;
this.CPF = cpf;
}
E a solução era mais simples do que eu imaginava (que era a solução que o VS Code me deu):
public class Gerente extends Funcionario{
public Gerente(String nome, String cpf) {
super(nome, cpf);
}
Era só fazer o mesmo construtor!!!!!!
Quis deixar esse relato porque as vezes pequenas mudanças que fazemos no projeto pode alterar tudo e pode deixar a gente perdido. E também o quanto eu to bravo por ter perdido tanto tempo em um erro tão simples, que eu não consegui reparar antes.
Código completo do Funcionario.java
public class Funcionario {
private String Nome;
private String CPF;
private double Salario;
public Funcionario (String nome,String cpf){
this.Nome = nome;
this.CPF = cpf;
}
public double getBonificacao(){
return this.Salario *0.1;
}
public String getNome() {
return Nome;
}
public String getCPF() {
return CPF;
}
public double getSalario() {
return Salario;
}
public void setSalario(double salario) {
Salario = salario;
}
}
Código do Gerente.java (ainda não terminei essa aula, por isso está incompleto e com comentário para ocultar o código):
public class Gerente extends Funcionario{
public Gerente(String nome, String cpf) {
super(nome, cpf);
}
private int Senha;
public boolean autentica(int senha){
if (this.Senha == senha) {
return true;
} else {
return false;
}
}
/* public double getBonificacao(){
return this.Salario;
}*/
}