继承在Java

时间:2015-11-30 11:25:33

标签: java inheritance

我希望你能帮助我。

我正在为学校编写“编程简介”Java项目,并且在继承方面存在一些问题。

我需要创建将不同产品添加到arraylist的方法,它代表一个非常简单的数据库。所以,我有一个蛋糕的arraylist,一个面包等。

如何在我的超类“Product”中创建一个所有子类都可以继承的方法。

现在,“添加产品”在每个子类中实现,看起来像这样。

protected void addCakes() throws IllegalArgumentException {
    System.out.println("Enter quantity to be added: ");
    int n = scanner.nextInt();

    if(n > 0) {
        for(int i = 0; i < n; i++) {
            cupcakedatabase.addCupcake(this);
        }
    } else {
        throw new IllegalArgumentException("The amount has to be positive");
    }
}

并且cupcakeDB中的代码看起来像这样:

private static ArrayList<Cupcake> cupcakes;

public CupcakeDB() {
    cupcakes = new ArrayList<Cupcake>();
}

public void addCupcake(Cupcake cupcake) {
    cupcakes.add(cupcake);
}

编辑

这在我的产品类中。

import java.util.Scanner;

public abstract class Product {

protected String name;
protected String flavor;
protected double price;
protected int quantity;

Scanner scanner = new Scanner(System.in);

public void createProduct(String name, String flavor, double price) {
    this.name = name;
    this.flavor = flavor;
    this.price = price;
}

public void changePrice(double price) {
    this.setPrice(price);
}

public void changeFlavor(String flavor) {
    this.setFlavor(flavor);
}

public void setFlavor(String flavor) {
    this.flavor = flavor;
}

public void setPrice(double price) {
    this.price = price;
}

public void setQuantity(int quantity) {
    this.quantity = quantity;
}

public void setName(String name) {
    this.name = name;
}

public String getFlavor() {
    return flavor;
}

public double getPrice() {
    return price;
}

public String getName() {
    return name;
}

public int getQuantity() {
    return quantity;
}

}

1 个答案:

答案 0 :(得分:1)

你可以尝试类似的东西,

class Product<T>{
    ArrayList<T> list = new ArrayList<T>(); 

    public void add(T t){
        list.add(t);
    }

    public ArrayList<T> getMyAllProduct(){
          return list;
    }
}
  

现在将其继承到您的特定Product类,并自动为您提供。