Я хочу моделировать следующую ситуацию в ООП:
Я хочу, чтобы класс фрахта был абстрактным классом, потому что я хотел бы, чтобы моя программа взимала некоторые дополнительные сборы в соответствии со степенью опасности, что одна часть груза имела.
Фактически проблема, которую я получил, это то, что я хочу, чтобы класс Freight был массивом объектов. Я имею в виду, что он может хранить кусок багажа и куски груза. Мой вопрос: где я могу поместить вызов метода addItem? должен ли я поместить его в классы "Часть багажа" и "Класс груза"? или я должен поместить общий абстрактный метод 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 содержит массив объектов типа багажа и груза?
Спасибо