Exception in thread "main"

Aew galera…,

por favor me ajudem,

tipow, estou compilando minha classe Produto, por exemplo e esta dando o seguinte erro:

java.lang.NoSuchMethodError: Fornecedor: method ()V not found
at Produto.(Produto.java:39)
at Produto.main(Produto.java:56)
Exception in thread “main”

o que eh isso??? ate ontem ele tava sem erros

meu construtor:

public Produto(String n, String nf, String qtdest, String pv) { (linha 39) nome = n; this.setNomeFornecedor(nf); qtdestoque = qtdest; precovenda = pv; }

Produto meuProduto = new Produto("", “”, “”, “”); => linha 56

a classe estya declarada: public class Produto extends Fornecedor
e no Fornecedor esta como protected o atributo nomeFornecedor

espero que me ajudem,
obrigado pela atenção
Mateus Zenaide

…e existe o método setNomeFornecedor( String nome ) na classe Fornecedor? :?:

existe sim…

[code]public String getNomeFornecedor()
{
return nomeFornecedor;
}

public void setNomeFornecedor(String nomeFornecedor)
{
this.nomeFornecedor = nomeFornecedor;
}[/code]

mateus, poste teu codigo completo ai… ai a gente acha o erro… :bocao: …2 matheus’es pensam melhor q 1… ehaeheha :naughty:

import javax.swing.*;

public class Produto extends Fornecedor 
{
    private String nome;
    private String qtdestoque;
    private String precovenda;
    
public String getNome()
{
    return nome;
}

public void setNome(String nome)
{
    this.nome = nome;
}

public String getQtdEstoque()
{
    return qtdestoque;
}

public void setQtdEstoque(String qtdestoque)
{
    this.qtdestoque = qtdestoque;
}
public String getPrecoVenda()
{
    return precovenda;
}

public void setPrecoVenda(String precovenda)
{
    this.precovenda = precovenda;
}

public Produto(String n, String nf, String qtdest, String pv)
{
    nome = n;
    this.setNomeFornecedor(nf);
    qtdestoque = qtdest;
    precovenda = pv;
}

public String toString()
{
    return "Nome: " + nome + "\n" +
	   "Fornecedor: " + nomeFornecedor + "\n" +
	   "QtdEstoque: " + qtdestoque + "\n" +
	   "PreçoVenda: " + precovenda + "\n";
}

public static void main(String args[])
{
    Produto meuProduto = new Produto("", "", "", "");
    
    String nome, nomeFornecedor, qtdestoque, precovenda;
    
        nome = 
            JOptionPane.showInputDialog("Nome do Produto: ");
	
        nomeFornecedor =
            JOptionPane.showInputDialog("Fornecedor: ");
	
        qtdestoque = 
            JOptionPane.showInputDialog("QtdEstoque: ");

        precovenda = 
            JOptionPane.showInputDialog("PreçoVenda: ");
	
        JOptionPane.showMessageDialog(
            null, "Nome do Produto: " + nome + "\n" +
	          "Fornecedor: " + nomeFornecedor + "\n" +
		  "QtdEstoque: " + qtdestoque + "\n" +
		  "PreçoVenda: " + precovenda, "Cadastro de Produtos", JOptionPane.PLAIN_MESSAGE);
		
        JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!", "Confirmação do cadastro", JOptionPane.INFORMATION_MESSAGE);
        
        System.exit(0);
}

}

--------------------------------------------------------------------------------------

ERRO:

java.lang.NoSuchMethodError: Fornecedor: method <init>()V not found
        at Produto.<init>(Produto.java:39)
        at Produto.main(Produto.java:56)
Exception in thread "main" 

--------------------------------------------------------------------------------------

import javax.swing.*;

public class Fornecedor 
{
    protected String nomeFornecedor;
    private String produto;
    private String endereco;
    
public String getNomeFornecedor()
{
    return nomeFornecedor;
}

public void setNomeFornecedor(String nomeFornecedor)
{
    this.nomeFornecedor = nomeFornecedor;
}

public String getProduto()
{
    return produto;
}

public void setProduto(String produto)
{
    this.produto = produto;
}

public String getEndereco()
{
    return endereco;
}

public void setEndereco(String endereco)
{
    this.endereco = endereco;
}

public Fornecedor(String f, String p, String e)
{
    nomeFornecedor = f;
    produto = p;
    endereco = e;
}

public String toString()
{
    return "Nome do Fornecedor: " + nomeFornecedor + "\n" +
           "Produto: " + produto + "\n" +
           "Endereço: " + endereco;
}

public static void main(String args[])
{
    Fornecedor meuFornecedor = new Fornecedor("", "", "");
    
    String nomeFornecedor, produto, endereco;
    
    nomeFornecedor = 
        JOptionPane.showInputDialog("Nome do Fornecedor: ");
    
    produto =
        JOptionPane.showInputDialog("Produto: ");
        
    endereco =
        JOptionPane.showInputDialog("Endereço: ");
    
    JOptionPane.showMessageDialog(
        null, "Nome do Fornecedor: " + nomeFornecedor + "\n" +
              "Produto: " + produto + "\n" +
              "Endereço: " + endereco);
        
    JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!", "Confirmação do cadastro", JOptionPane.INFORMATION_MESSAGE);
    
    System.exit(0);
}

}

Num repara no codigo nao, sou iniciante, e um projeto para faculdade.

[color=“red”]Editado para conter BBCode por jujo[/color]

mateus, coloque um construtor sem argumentos na sua classe Fornecedor, recompile ela… e agora pode compilar o Produto… :yes:

public class Fornecedor {
    protected String nomeFornecedor; 
    private String produto; 
    private String endereco; 

    public Fornecedor() {}

    /* 
       ...
       continuação da classe, não precisa tirar nada...
       ... 
    */

[]'s

[quote=“matheus”]mateus, coloque um construtor sem argumentos na sua classe Fornecedor, recompile ela… e agora pode compilar o Produto… :yes:

public class Fornecedor {
    protected String nomeFornecedor; 
    private String produto; 
    private String endereco; 

    public Fornecedor() {}

    /* 
       ...
       continuação da classe, não precisa tirar nada...
       ... 
    */

[]'s[/quote]

Meu fiiiiiiiiiiiii… vc caiu do céu uheueheuheuh, tava precisando disse urgente, mais tipow, que besteira…, tipow, eu nao entendi pq fazendo o construtor sem argunmentos, rodou filé, pq sabe dizer? a pessoa pode fazer isso em todos os construtores ? ou so quando tiver dando pau uhahuauhauha

um abraço e obrigado aí! :lol:

bem, ocorre o seguinte… sabe-se q qnd se define um construtor com argumentos em uma classe, vc esta anulando o construtor padrão sem argumentos dessa classe… E, se vc tem uma subclasse dessa classe, o construtor da subclasse irá chamar implicitamente um super() sem argumentos, q nada mais é do q uma chamada ao construtor default da superclasse… Como vc definiu um construtor com argumentos na superclasse, e não colocou um construtor para ser o padrão, logo… a chamada a super() da subclasse ira gerar um erro, pq a superclasse não tem nenhum construtor sem argumentos…! sacou? :naughty: