2012-05-16 100 views
0

稍有问题就在这里:爪哇 - 超类/子类

public class Item extends ItemManufacturer 
{ 
// Attributes 
private String itemcode; 
private String itemname; 
private String description; 
private String style; 
private String finish; 
private float unitprice; 
private float stock; 

public void item(String suppliercodeIn, String suppliernameIn, String addressIn, String itemcodeIn, String itemnameIn, String descriptionIn, 
      String styleIn, String finishIn, float unitpriceIn, float stockIn) 
    { 
     super (suppliercodeIn, suppliernameIn, addressIn); 

     itemcode = itemcodeIn; 
     itemname = itemnameIn; 
     description = descriptionIn; 
     style = styleIn; 
     finish = finishIn; 
     unitprice = unitpriceIn; 
     stock = stockIn; 
    } 

我收到以下错误消息:

呼叫超必须在构造函数中的第一条语句。

有人愿意帮助我吗?

是一个额外的错误,我在与类讨论之后。

// Create a Item oject 
Item item = new Item(); 

我正在使用一个名为项目和项目的表名称的数据库。

+2

而且,我怀疑的类层次结构的如果名字有意义。 –

回答

2

我怀疑是一个错字。您的构造函数应该被称为Item而不是item。 (并且构造函数不返回任何内容,甚至不包括void。)

至于new表达式:当您创建Item的新实例时,您需要传入所有这些参数。

Item item = new Item("234SD23", "SuperSupplier", "21 SO Drive", ...); 
+0

这意味着您还没有为您的ItemManufacturer类定义这样的构造函数(或者也可能有类型错误)。 – Mat

+0

感谢您的帮助,我在物品和itemanufacturer类中都犯了这个错误。 – silverj2k7

+0

已修复第一个错误。 – silverj2k7

4

这就是问题所在:

public void item(...) 

这不是一个Item类的构造函数 - 这就是所谓的item一个void方法。它应该是:

public Item(...) 

请注意,Java区分大小写,并且构造函数没有声明的返回类型;它的只是可访问性,后跟类的名称,后跟参数列表。

+0

@ silverj2k7:你确定你有与该类名称匹配的构造函数的名字吗?你是否修复了“item”的情况? –

+0

public class Item extends ItemManufacturer { //属性 private String itemcode; private String itemname; 私人字符串描述; 私人字符串风格; 私人字符串完成; 私人浮动单位价格; 私人流通股; /* *为项目 */ 公共项目构造方法(String suppliercodeIn,字符串suppliernameIn,字符串地址素,字符串itemcodeIn,字符串itemnameIn,字符串descriptionIn – silverj2k7

+0

比较遗憾的是,是的,我确实有它固定在一个点然后我需要把项目类分成两类其他原因 – silverj2k7

0

看了这个,

  1. 如果没有错字,以及产品的方法,那么超(),不会工作。你需要做super.item();

  2. 如果有一个错字,它不是项项目,那么就没有返回类型,

    如:

    public Item (String suppliercodeIn, String suppliernameIn, String addressIn, 
        String itemcodeIn, String itemnameIn, String descriptionIn, 
        String styleIn, String finishIn, float unitpriceIn, float stockIn){ 
    
    } 
    
+0

它是: public Item(String suppliercodeIn,...... – silverj2k7

+0

所以没有错字,所以super.item();会是for?抱歉太多ITEMS我现在很容易混淆=/ – silverj2k7

+0

@ silverj2k7:空间不重要Kumar的第一点是你可能想要在超类中调用一个名为'item'的方法,但那不是什么你想要。 – Mat