我正在制作超类食物有两个子类:Dinner and Breakfast。晚餐和早餐将分别拥有两个自己的小类,晚餐包括海鲜和鸡胸肉,而早餐包括麦片和煎蛋。现在我只编程食物和晚餐,但当我尝试在主要编程时,它说我的构造函数是未定义的。层次结构中未定义的构造函数
这里是我的菜超:
public class Food {
private double price;
private int calories;
private boolean vegan;
public Food(double price, int calories, boolean vegan){
this.price = price;
this.calories = calories;
this.vegan = vegan;
}
public double getPrice(){
return price;
}
public int getCalories(){
return calories;
}
public boolean getVegan(){
return vegan;
}
}
,这里是我的晚餐子类:
public class Dinner extends Food{
public Dinner(double price, int calories, boolean vegan){
super (price, calories, vegan);
}
}
为了保持这个问题开放式的,我我只是在寻找一个更概念化的答案,所以它可以适用于其他人的问题。如何为super/subclass创建构造函数,以及如何在main中使用它?谢谢大家。
P.S .:我知道我可以删除“公共食品”的构造函数并编写“Food x = new Food”;在主要但我的计算机科学教师要求您在每个类中都有一个构造函数:super或sub。
编辑:我的主要方法是目前:
public class Main {
public static void main(String[] args){
Food x = new Food();
}
}
,而我得到 “构造食物()是不确定的”。我知道我可能错过了一些东西/做错了,所以我只是在寻找如何真正完成这项任务的指导。
什么是你得到确切的错误消息,您需要将这些争论? – Nic
你会提供更多的上下文,因为我复制和粘贴你的课程,并没有麻烦在我的主要方法编码 –
邮政编码从这里'main'方法 – Yousaf