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