Problema com herança

3 respostas
J

Olá a todos estou com um problema para utilizar a herença

classe Empregado

/*
 
public abstract class Empregado {
    private String nome, regime;
    public abstract float getSalario();

    public Empregado(String n, String r){
        this.nome=n;
        this.regime=r;
    }
    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the regime
     */
    public String getRegime() {
        return regime;
    }

    /**
     * @param regime the regime to set
     */
    public void setRegime(String regime) {
        this.regime = regime;
    }

public class EmpregadoHorista extends Empregado{
    private float valorhora;
    private float numerodehoras;
    static final int taxafixa = 200;

    public EmpregadoHorista(String n, float valor, float horas){
        super(n,"Horista");
        this.valorhora = valor;
        this.numerodehoras = horas;
    }

    public float getSalario(){
        return (valorhora*numerodehoras)-taxafixa;
    }
}
public class EmpregadoAssalariado extends Empregado{
    private float salariobase, desconto;

    public EmpregadoAssalariado(String n, float base, float desc){
        super (n,"Assalariado");
        this.salariobase = base;
        this.desconto = desc;
    }

    public float getSalario(){
        return salariobase*(1-desconto);
    }

}

public class EmpregadoBonificado extends Empregado{
    private float salariobase, desconto, bonus;

    public EmpregadoBonificado(String n, float base, float desc, float bon){
        super(n,"Bonificado");
        this.bonus = bon;
        this.desconto = desc;
        this.salariobase = base;
    }

    public float getSalario(){
        return (salariobase * (1 - desconto)) * (1 + bonus);
    }
}



}
classe FolhaPagamento
public class FolhaPagamento {
     
    public FolhaPagamento(){}
    
    public void imprimeFolha(Empregado[] empregados){
        for(Empregado empregado : empregados){
            System.out.printf("Nome %s",empregado.getNome());
            System.out.printf("\nRegime:%s", empregado.getRegime());
            System.out.printf("\nSalario:%f", empregado.getSalario());

        }
Main
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

       Empregado[] empregados = {new EmpregadoHorista("Marcos",20, 80),
               new EmpregadoHorista("Joao", 5, 120),
               new EmpregadoAssalariado("Cristina",4000, 0.2),
               new EmpregadoAssalariado("Roberto", 1000, 0.3),
               new EmpregadoBonificado("Ana", 6000, 0.2, 0.3),
               new EmpregadoBonificado("Carla", 11000, 0.3, 0.2)};
    }

    FolhaPagamento f = new FolhaPagamento();
    f.imprimeFolha(empregados);

}

qdo eu crio o array de empregados no main ta dando um erro falando q não pode encontrar as classes q herdam de Empregado.

3 Respostas

B

Cada uma dessas classes está em seu próprio arquivo?

Frantic_Avenger

Não sei se contei as {chaves} corretamente mas pelo que vi suas classes herdeiras estão dentro de sua super classe. Coloque uma em cada arquivo do jeito que o Bruno falou. Vlw

J

blz funcionou valeu abraços

Criado 3 de maio de 2010
Ultima resposta 3 de mai. de 2010
Respostas 3
Participantes 3