我试着寻找这个问题的答案,但我也是 1.没有正确地问 2.不直接思考
基本上,我的作业是一个模拟杂货店。我有一个Item类,我需要用于子类,它将继承Item类的特征。 (继承)
以下是我目前为本课程所做的工作以及我的期望
public class Baguette extends Item {
int price;
String name;
public Baguette(String name, int price){
this.name = name;
this.price = price;
}
@Override
public String getName(){
return name;
}
public int getCost(){
return price;
}
}
现在这里是这个Baguette类的子类
public class FlavoredBaguette extends Baguette {
String name;
int price;
String flavor;
int costFlav;
public FlavoredBaguette(String name, int price, String flavor, int costFlav)
{
this.name = name;
this.price = price;
this.flavor = flavor;
this.costFlav = costFlav;
}
}
执行此操作后,我在行中收到此错误 类长方形的Baguette构造函数不适用于给定类型 required:string,int 发现:没有争论 原因:实际和正式的参数列表长度不同
我知道它与不同的论点数量有关,但我在这里一无所知。谢谢你的帮助!
答案 0 :(得分:3)
您需要先调用Baguette
的构造函数super(name, price);
,这意味着FlavoredBaguette
不需要name
或{{1因为它将从price
Baguette
答案 1 :(得分:1)
对于扩展,您不需要声明超类的字段。同样在构造函数中,只需使用参数name和price调用super()
。
public class FlavoredBaguette extends Baguette {
String flavor;
int costFlav;
public FlavoredBaguette(String name, int price, String flavor, int costFlav){
super(name, price);
this.flavor = flavor;
this.costFlav = costFlav;
}
编辑:看起来MadProgrammer打败了我:c