我在理解两个小任务方面有一些小问题。我会尽量做到具体,但我必须翻译所有德语内容,因此请记住这一点。任务是编写一种“培训游戏”,您可以在其中建立培训 class ,等等。
我的第一个任务是实现一个包含三种不同方法的接口:
比我们必须实现一个新的类
TrainingsessionWithGoal
,在其中您使用超类Trainingsession
的构造函数,但是您必须添加caloryGoal,我不知道如何从接口实现它(我敢肯定,我们必须实现它与set-method。我当前的代码是这样的:public TrainingsessionWithGoal(int trainingtime, Fitnessdevice fitnessdevice, int day, int month, int year, int hh, int mm, int caloryGoal) {
super(trainingtime, fitnessdevice, day, month, year, hh, mm);
this.caloryGoal = caloryGoal;
}
这完全可以,但是我很确定,实现caloryGoal的方法不是正确的方法,因为我从不使用接口的set-method。有人对此有想法吗?
在另一个任务中,我们必须创建一个新的类
TrainingProgramm
,在其中我们实现一个arraylist,其中填充了类Trainingsession
和新类TrainingsessionWithGoal
的不同对象,我绝对不知道如何处理。我搜索了所有内容,但找不到可以帮助我的东西。这是我到目前为止所拥有的:
private ArrayList <Objects> list = new ArrayList <Objects> ();
public TrainingProgramm (String programmName, ArrayList<Objects> list) {
this.programmName = programmName;
this.list = list;
}
但这显然行不通。如果有人可以引导我采取正确的方法,那将非常有帮助。
最佳答案
您可以按照Lino的建议更改ArrayList<Object> to ArrayList<? extends Trainingsession>
。更好的是,为此使用您的(无论如何命名)接口。
字段的类型和方法的参数应为List,而不是ArrayList。而且这些名称应正确命名-而不是列表,而是赋予它们更多的语义名称。这样,您就可以……。像这样:
private List<YourInterface> sessions = new ArrayList <YourInterface> ();
public TrainingProgramm (String programmName, List<TrainingSessionInterface> sessions) { ... }