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

Eclipse Consta erro, não entendi o pq.

Ola, eu estava seguindo as notas no prof mas o eclipse insiste em dizer que ha um erro, logo no nome da Class.

public class Gerente extends Funcionario {
   //Erro Aparece no Gerente.
    int senha;

    public boolean autentica(int senha) {
        if(this.senha == senha) {
            return true;            
        }else {
            return false;
        }
    }

}

Erro Relatado pelo sistema Eclipse:

Description    Resource    Path    Location    Type
Implicit super constructor Funcionario() is undefined for default constructor. 
Must define an explicit constructor    Gerente.java    /ByBank-Herdado/src    line 1    Java Problem

Minha Class funcionario

public class Funcionario {

    private String nome;
    private String cpf;
    private double salario;
    private int tipo = 0; // 0= comum, 1= Gerente, 2- Boss

    //Construtor

    public Funcionario(String nome,String cpf, double salario) {
            this.nome = nome;
            this.cpf = cpf;
            this.salario = salario;
            System.out.println("Novo Funcionario Registrado!");
            System.out.println("Seja Bem Vindo " + nome);
    }


    public  double getBonus() {

        if(this.tipo ==0) {
                return this.salario * 0.1;
        } else if(this.tipo == 1) {
            return this.salario + 1000.0;
        }
        return salario;
    }


    //Metodos dos Get E Set

    public String getNome() {
        return nome;
    }


    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public double getSalario() {
        return salario;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }



}

Atualização: Se eu retirar o Construtor da class funcionário o erro sai, mas queria deixar o construtor.

2 respostas
solução!

Boa noite, Bernardo! Como vai?

Isso está acontecendo no seu código pois está diferente do código visto na aula! Se vc observar bem, o código da classe Funcionario apresentado na aula não tem construtor como acontece na sua classe Funcionario.

Sendo assim, como vc implementou um construtor na classe mãe, as classes filhas terão que invocar tal construtor da classe mãe através da palavra reservada super!

O código da classe Gerente ficaria mais ou menos assim:

public class Gerente extends Funcionario {

    int senha;

    public Gerente(String nome,String cpf, double salario) {
        super(nome, cpf, salario);
    }

    // Restante do código omitido.
}

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Muito obrigado, vc sanou minha duvida. Estou gostando muito do curso e plataforma, tenha um bom dia/tarde/noite.