构造函数具有抽象类的对象作为参数

时间:2013-12-14 21:18:14

标签: java parameters constructor abstract

我有一个名为IGrocery的界面,其中有一个方法public String getName()。 然后有一个名为AbstractFood的抽象类,它实现了接口,并且有一个变量protected String name。 此外,还有一个公共课Ingredient(一个private double amount必须有这样的构造函数:

public Ingredient(AbstractFood food, double amount){
    this.amount=amount;
    ???
}

我不明白如何创建Ingredient对象,因为我必须在此之前创建一个AbstractFood对象(但AbstractFood类是抽象的)。

2 个答案:

答案 0 :(得分:3)

你有一个类来自AbstractFood的说法:

public class Peanut extends AbstractFood
{
   public Peanut(){
     //code
   }
}

这样,您可以将“Peanut”的实例作为构造函数的参数:)

答案 1 :(得分:0)

  • 创建扩展抽象类的子类
  • 如果您不想要第一种方法:那么使用匿名类方法:

    AbstractFood aFood = new AbstractFood() 
                                 {
                                     // your implementation
                                 };
    new Ingredient(aFood, someDoubleVal);