Método construtor

3 respostas
java
J

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  é esse: No suitable constructor found for

3 Respostas

wldomiciano

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.

Isaura_Antonio

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!!

Isaura_Antonio

/**
*

  • @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

Criado 19 de setembro de 2020
Ultima resposta 8 de out. de 2020
Respostas 3
Participantes 3