Olá, eu sempre tive duvidas com arrays orientado a objetos, estou criando um projeto onde seria um controle de pagamento de funcionarios com polimorfismo, onde as classes (assalariados, comissionados, etc), são declaradas basicamente assim:
public class Assalariado extends Empregado{
private double extraHour;
public Assalariado(double extraHour, String nome, String sobrenome, int numeroIdentidade) {
super(nome, sobrenome, numeroIdentidade);
this.extraHour = extraHour;
}
@Override
public double getValorAPagar() {
return ControlePagamento.SALARIO + (ControlePagamento.HORA*extraHour);
}
@Override
public String toString(){
return String.format(“O salário final do %s é R$ %f”, super.getNome(), this.getValorAPagar());
}}
--------------------------------------------------------. . . . ----------------------------------------------------
enquanto a classe de controle de pagamentos, é assim:
public class ControlePagamento {
public static final double SALARIO = 1212.0;
public static final double HORA = 30.0;
private Pagavel[] controlePagamento;
private int posicao;
public ControlePagamento(){
this.controlePagamento = new Pagavel[10];
this.posicao = 0;
}
public void adicionaItemPagavel(Pagavel item){
if(posicao<10){
controlePagamento[posicao] = item;
posicao++;
}
}
public double calculaValorAPagarContas(){
double retorno = 0;
for(Pagavel item : controlePagamento){
if (item instanceof Conta){
retorno = retorno + item.getValorAPagar();
}
}
return retorno;
}
}
--------------------------------------------------------. . . . ----------------------------------------------------
Minha duvida seria como eu manipulo esse array de objetos pra guardar o SalarioAPagar de cada funcionario, e chamar o metodo calculaValorAPagarContas, para saber quanto devo pagar no total