[Resolvido] Problema com herança em Java

8 respostas
A

Olá boa tarde pessoal.
Estou com um problema aqui que é o seguinte: tenho uma classe Gerente que é uma subclasse da classe Funcionario

class Funcionario
{
  private static int identificador;
  private Data dataDeEntrada;
  
  public Funcionario(String s, int ex, int ei)
  {      Funcionario.identificador += 1;    dataDeEntrada = new Data(s, ex, ei);        }
}
class Gerente extends Funcionario
{
   public Gerente(String s, int ex, int ei)
  {   }  
}

Consigo compilar classe Funcionario sem nenhum erro. Porem quando tento compilar a classe Gerente me aparece a seguinte mensagem:
Gerente.java:1 : erro: constuctor Funcionario in class Funcionario cannot e applied to give type;

Class Gerente exetends Funcionario
Required: String, int, int
found: no arguments
reason: actual and formal argument lists differ in lengt().

Alguem pode me ajudar a resolver este problema.?
Desde já, sou muito grato!

8 Respostas

diego.sas

Falta adicionar super na classe Gerente

super(s, ex, ei);
Eduardo_Bregaida

Olá, você deve passar os argumentos do construtor do Gerente para os do construtor de Funcionário:

Funcionario.java
class Funcionario {
	private static int identificador;
	private String dataDeEntrada;

	public Funcionario(String s, int ex, int ei) {
		System.out.println("Funcionário");
		Funcionario.identificador += 1;
		dataDeEntrada = s+""+ex+""+ ei;
	}
}
Gerente.java
class Gerente extends Funcionario
{

	public Gerente(String s, int ex, int ei)
	{
		super(s, ex, ei); //Faltou essa linha no seu código.
		System.out.println("Gerente");
	}
	
	public static void main(String[] args) {
		new Gerente("11", 1, 2);
		
	}
}

Vê se era isso que você queria.

drsmachado

Isso por que, há, basicamente, dosi tipos de construtores, o padrão, sem argumentos e os que possuem argumentos.
Os que não possuem argumentos podem ser suprimidos e, ao termos uma relação de herança, ficam “subentendidos” nas classes filhas.
Uma alternativa ao super(String, int, int), seria criar um método construtor sem argumentos.

A

diego.sas:
Falta adicionar super na classe Gerente

super(s, ex, ei);


Valeu amigão, deu certo. Muito obrigado mesmo pela ajuda!

A
Eduardo Bregaida:
Olá, você deve passar os argumentos do construtor do Gerente para os do construtor de Funcionário: Funcionario.java
class Funcionario {
	private static int identificador;
	private String dataDeEntrada;

	public Funcionario(String s, int ex, int ei) {
		System.out.println("Funcionário");
		Funcionario.identificador += 1;
		dataDeEntrada = s+""+ex+""+ ei;
	}
}
Gerente.java
class Gerente extends Funcionario
{

	public Gerente(String s, int ex, int ei)
	{
		super(s, ex, ei); //Faltou essa linha no seu código.
		System.out.println("Gerente");
	}
	
	public static void main(String[] args) {
		new Gerente("11", 1, 2);
		
	}
}

Vê se era isso que você queria.


Valeu amigão, deu certo. Muito obrigado mesmo pela ajuda!

A

drsmachado:
Eduardo Bregaida:

Gerente.java

super(s, ex, ei); //Faltou essa linha no seu código.

Isso por que, há, basicamente, dosi tipos de construtores, o padrão, sem argumentos e os que possuem argumentos.
Os que não possuem argumentos podem ser suprimidos e, ao termos uma relação de herança, ficam “subentendidos” nas classes filhas.
Uma alternativa ao super(String, int, int), seria criar um método construtor sem argumentos.

Valeu amigão, deu certo. Muito obrigado mesmo pela ajuda!

Robb_Junior

Alysson, que bom que o problema do código foi resolvido com a ajuda dos amigos aqui do forum!!!

peço só que edite o post para [RESOLVIDO] pra gente!!!

valeu, abraço.

Eduardo_Bregaida

alyssonjr:
diego.sas:
Falta adicionar super na classe Gerente

super(s, ex, ei);


Valeu amigão, deu certo. Muito obrigado mesmo pela ajuda!

É válido, mas como ele colocou os atributos no construtor tinha que fazer a chamada no pai :smiley:

Já coloquei o título como resolvido para os próximos programadores que tiverem essa dúvida encontrarem a resposta.

Só 1 dica alyssonjr, coloca código entre as tags [code| e [/code| (substitua os | por ])

abraços

Criado 26 de dezembro de 2011
Ultima resposta 26 de dez. de 2011
Respostas 8
Participantes 5