Erro

4 respostas Resolvido
Geisse_Edson

Pessoal o meu código está a dar este erro aqui
O devo fazer…?

4 Respostas

Lucas_Camara
Solucao aceita

Manda o código (por favor, evite mandar imagem do código).

Geisse_Edson

O código é este: Está é a class mãe.

package geissedson;

public abstract class Pessoa {
  
  
  private String nome;
  private int idade;
  private String endereco;
  private int telefone;
  private String sexo;
  private int dataCadastro;
  
  
  public abstract void fazerFlexao();
  public abstract void levantarFerro();
  public abstract void FazerAgaxamento();
  
  public Pessoa(String nome, int idade, String endereco, int telefone, String sexo, int dataCadastro)
  {
    this.nome = nome;
    this.idade = idade;
    this.endereco = endereco;
    this.telefone = telefone;
    this.sexo = sexo;
    this.dataCadastro = dataCadastro;
  }
  
  public String getNome()
  {
    return nome;
  }
  public void setNome(String nome)
  {
    this.nome = nome;
  }
  
  public int getIdade()
  {
    return idade;
  }
  public void setIdade(int idade)
  {
    this.idade = idade;
  }
  
  public String getEndereco()
  {
    return endereco;
  }
  public void setEndereco(String endereco)
  {
    this.endereco = endereco;
  }
  
  public int getTelefone()
  {
    return telefone;
  }
  public void setTelefone(int telefone)
  {
    this.telefone = telefone;
  }
  
  public String getSexo()
  {
    return sexo;
  }
  public void setSexo(String sexo)
  {
    this.sexo = sexo;
  }
  
  public int getDataCadastro()
  {
    return dataCadastro;
  }
  public void setDataCadastro(int dataCadastro)
  {
    this.dataCadastro = dataCadastro;
  }
  

}

Está é a class filha: o erro que está a dar é o seguinte: implicit super constructor Pessoa (). Os undefined for default constructor. Must define an explicit constructor

package geissedson;

public class Aluno extends Pessoa {
 
 @Override
 public void fazerFlexao()
 {
   System.out.println("Fazendo flexões! ");
 }
 @Override 
 public void levantarFerro()
 {
   System.out.println("levantando ferro");
 }
 @Override 
 public void FazerAgaxamento()
 {
   System.out.println("Agachamento");
 }
  
  // Métodos 

  public void cadastrarAluno()
  {
    System.out.println(this.getNome() + "foste cadastrado(a) com sucesso");
  }

  public void removerAluno()
  {
    System.out.println("O aluno " + this.getNome() + "foi removido");
  }
  
  
  public void apresentar()
  {
    System.out.println("Aluno(a) " + this.getNome() + " sexo " + this.getSexo() + " de " + this.getIdade() + " anos mora na rua " + this.getEndereco() + " o seu número de telefone é " + this.getTelefone() + " foi cadastrado no dia " + this.getDataCadastro());
  }

}
staroski

Como a mensagem diz, a classe Pessoa não possui um construtor sem parâmetros.
Então na subclasse Aluno você precisa declarar explicitamente um construtor que chame o construtor parametrizado da superclasse.

Geisse_Edson

Ok! Agora sim, o programa compilou :ok_hand:
@staroski

Criado 2 de abril de 2020
Ultima resposta 3 de abr. de 2020
Respostas 4
Participantes 3