私はスーパークラスのFoodを2つのサブクラス、すなわちDinnerとBreakfastで作成しています。ディナーと朝食にはそれぞれ2つのサブクラスがあり、ディナーにはシーフードとチキンディッシュが、朝食にはシリアルとオムレットがそれぞれ用意されています。今私は食べ物と夕食だけをプログラムしていますが、メインでプログラムしようとすると、私のコンストラクタは定義されていません。未定義の階層構造のコンストラクタ
ここでは私の食品スーパーである:
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);
}
}
オープンエンドのこの質問を保つために、私はより概念的な答えを探しているだけなので、他の人の質問にも適用できます。どのようにスーパー/サブクラスのコンストラクタを作成し、それをメインでどのように使うのですか?皆さんありがとう。
P .:私は "public food"コンストラクタを削除して "Food x = new Food;"と書くことができます。メインではありますが、私のComp Sci教師は、すべてのクラスにスーパーまたはサブのコンストラクタがあることを要求します。
EDITは:私の主な方法は、現在、次のとおりです。
public class Main {
public static void main(String[] args){
Food x = new Food();
}
}
がどの私は "コンストラクタ食品()が定義されていません" を取得します。私はおそらく何かが欠けている/それを間違っていることを知っているので、私は実際にこのタスクを完了する方法のガイダンスを探しています。
あなたが得る正確なエラーメッセージは何たとえば
のクラスFood
のオブジェクトを作成するときは、これらの引数を渡す必要が? – Nic
クラスをコピーしてペーストし、メインメソッドでコーディングに問題がないので、より多くのコンテキストを提供するつもりです –
ここで 'main'メソッドのポストコード – Yousaf