Essa é minha superclasse
public class Pessoa {
....
}
public class Fornecedor extends Pessoa {
public Fornecedor(){
}
...}
Essa é minha superclasse
public class Pessoa {
....
}
public class Fornecedor extends Pessoa {
public Fornecedor(){
}
...}
qual o erro?
a classe pessoa é somente isso, por enquanto ou ela possui mais codigo, como um construtor por exemplo?
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");
}
}
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
}
}
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
}
}
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!
vc poderia me mostrar como fica, pq tentei aqui e não deu certo
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…
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.
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?