我想在 OOP 中模拟以下情况:
我希望货运类是一个抽象类,因为我希望我的程序根据一件货物的危险程度收取一些额外的费用。
实际上,我遇到的问题是我希望 Freight 类是一个对象数组。我的意思是它可以存储一件行李和一件货物。我的问题是我可以在哪里放置一个方法调用 addItem?我应该把它放到 Puggage 和 Piece of Cargo 类中吗?还是应该将一个名为 addItem 的通用抽象方法放入 Freight 类中?像这样的东西(我为此目的使用Java):
abstract class Freight{
//other things here
protected Freight[] fr=Freight[10];
protected int numItems;
abstract addItem();
}
class PieceOfLuggage extends Freight{
//other things
public PieceOfLuggage(int iden,double weight,int id){
super(iden,weight,id)
}
public addItem(){
fr[numItems]=this;
numItems++;
}
}
class PieceOfCargo extends Freight{
private degreeHazard;
public PieceOfCargo(int iden,double weight,int id,int degHazard){
super(iden,weight,id);
degreeHazard=degHazard;
}
public addItem(){
fr[numItems]=this;
numItems++;
}
}
这样在我的主程序中,我可以执行以下操作:
Luggage l1=new Luggage(100,50,1234); //ident, weight, id
Cargo c1=new Cargo(300,123.56,1111,1); //ident, weight, id, degree of hazard
l1.addItem();
c1.addItem();
有什么建议我可以在哪里放置 addItem 方法吗?以便类 Freight 包含一系列行李和货物类型的对象?
谢谢