Java - 超类/子类

时间:2012-05-16 16:23:47

标签: java subclass superclass

这里有轻微的问题:

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;
  }

我收到以下错误消息:

  

调用super必须是构造函数中的第一个语句。

有人愿意帮我解决这个问题吗?

在玩弄类之后,我得到了一个额外的错误。

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

我正在使用名为items的数据库和item的表名。

3 个答案:

答案 0 :(得分:4)

这是问题所在:

public void item(...)

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

public Item(...)

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

阅读本文,

  1. 如果没有拼写错误,而item是一个方法,那么super()就不会工作。你需要做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){
    
    }