我希望你能帮助我。
我正在为学校编写“编程简介”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;
}
}
答案 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类,并自动为您提供。