Método construtor

Criei 2 métodos construtores:

Esse primeiro herda todos os atributos de uma classe pai

public Administrador(double ajudaCusto, double salariohora, double horasTrabalhadas, int matricula, int codSetor, String nome, int idade, String sexo) {
super(salariohora, horasTrabalhadas, matricula, codSetor, nome, idade, sexo);
this.ajudaCusto = ajudaCusto;
}

O segundo herda só alguns, mas da erro

public Administrador(double ajudaCusto,int matricula, String nome,int idade,String sexo) {
super(matricula, nome, idade, sexo);// erro está nesta lista
this.ajudaCusto = ajudaCusto;
}
O erro que dá é esse: No suitable constructor found for

1 curtida

Em Java não existem “métodos construtores”. Existem métodos e existem constructors e ambos possuem várias diferenças.

Outro ponto importante é que apenas membros podem ser herdados. Constructors não são membros e por isso não são herdados. Cada classe, pai e filha, tem seus próprios constructors.

Ficaria mais fácil identificar o erro se vc postasse suas classes, mas não tem muito segredo, o problema é exatamente o que a mensagem diz, ou seja:

A super classe de Administrador não possui um constructor capaz de receber os 4 argumentos que vc está tentando passar.

public class Adiministrador {

double ajudaCusto;
double horasTrabalhadas;
double salariohora;

int matricula;
int codSetor;
String nome;
int idade;
String sexo;

public Adiministrador(double ajudaCusto, double salariohora, double horasTrabalhadas, int matricula, int codSetor, String nome, int idade, String sexo) {

this.ajudaCusto = ajudaCusto;
this.horasTrabalhadas=horasTrabalhadas;
this.salariohora=salariohora;
this.matricula = matricula;
this.codSetor = codSetor;
this.nome = nome;
this.idade = idade;
this.sexo =sexo;

    System.out.println ("AjudaCusto:"+ajudaCusto+"Horas:"+horasTrabalhadas+"Salario:"+salariohora+"Matricula:"+matricula+"Codigo:"+codSetor+"Nome:"+nome+"Idade:"+idade+"sexo:"+sexo);

}

public Adiministrador(double ajudaCusto,int matricula, String nome,int idade,String sexo) {
    this.ajudaCusto = ajudaCusto;
    this.matricula = matricula;
    this.nome = nome;
    this.idade =idade;
    this.sexo =sexo;
    
    System.out.println("Ajuda:"+ajudaCusto+"Matricula:"+matricula+"Nome:"+nome+"Idade:"+idade+"sexo:"+sexo);

}
}
identar texto pré-formatado por 4 espaços

Assim funciona!!

/**
*

  • @author isaura
    */
    public class TestAdim
    {
    public static void main(String[] args)
    {
    Adiministrador adim11 = new Adiministrador(8,2, “Helena”,12,“Feminino”);
    // Adiministrador adim = new Adiministrador(200, 1000, 22, 20507, 10, “Isa”, 21, “Feminino”);

    }

}
identar texto pré-formatado por 4 espaços