Que isso? Erro entre classes (herança)

8 respostas
M

Essa é minha superclasse

public class Pessoa {
....
}
E essa é a classe que erda de Pessoa só que no construtor dá um erro que não entendi o por que????
public class Fornecedor extends Pessoa {

     public Fornecedor(){
}
...}
:roll:

8 Respostas

FieroddPJ

qual o erro?

a classe pessoa é somente isso, por enquanto ou ela possui mais codigo, como um construtor por exemplo?

J

Se você disser qual é o erro fica mais facil.

Mas já adiantando, se a classe Pessoa não tiver um construtor vazio, não vai compilar mesmo, pois você precisa chamar o construtor da superclasse na subclasse, usando o super();

ex.:

public class Pessoa {
   public Pessoa(String nome){
      //...
   }
}

public class Fornecedor extends Pessoa {
   public Fornecedor(){
      super("Nome do fornecedor");
   }
}
M
package Exercícios;

public class Pessoa {
	
	protected String nome = "";
	protected int rg;
	protected String data_nasc = "";
	

	public Pessoa(String n, int rg, String d) {
		// TODO Auto-generated constructor stub
		nome = n;
		this.rg = rg;
		data_nasc = d;
	}
	
	public String toString(){
		return("Nome : " + nome +"\nIdentidade : " + rg +
				"\nData de Nascimento : " + data_nasc);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		

	}

}
ai dentro desse construtor abaixo dá um erro
package Exercícios;


public class Fornecedor extends Pessoa {

	public Fornecedor(){
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
R

Olá moacirjava. A resposta é essa que jairelton já te deu. Se na sua super classe vc não tem um construtor padrão - sem argumentos - vc precisa chamar o construtor da superclasse no construtor da sua subclasse.

Valeu!

M

vc poderia me mostrar como fica, pq tentei aqui e não deu certo

D
package Exercícios;


public class Fornecedor extends Pessoa {

   public Fornecedor(String n, int rg, String d){
        super(String n, int rg, String d);
      // TODO Auto-generated constructor stub
   }

   /**
    * @param args
    */
   public static void main(String[] args) {
      // TODO Auto-generated method stub

   }

}

vc precisa chamar o construtor da super-classe…se ele tiver argumentos…deve passar os argumentos necessários…

B

bom… na sua classe Pessoa, no construtor tem: (String n, int rg, String d), certo?

então, na classe filha, dentro do construtor vc tem que colocar:

super(argumentos);

atenção, isso tem que ser a primeira coisa que tem que ter dentro de um construtor da classe filha… por exemplo:

public Fornecedor((String n, int rg, String d, String NomeFornecedor){
   super(n, rg, d);
   this.nomeFornecedor = NomeFornecedor;
}

bom, o que acontece aqui?

o super vai chamar o construtor da classe pai, e depois, completar a classe filha colocando nome do fornecedor.

M

Esse SUPER sempre quando eu o chamo, ele passa somente os atributos da classe ou passa qualquer método da classe desde que esteja implementado dentro do construtor?

Criado 18 de novembro de 2006
Ultima resposta 20 de nov. de 2006
Respostas 8
Participantes 6