有继承问题。需要从经理类调用子类方法吗?

时间:2017-04-13 01:53:07

标签: java class inheritance

我目前正在编写一个程序,将在四个不同的“赛车手”之间进行比赛。每个赛车手都以独特的方式运动,因此必须有自己的班级。这四个唯一的“racerType”类必须是通用“Racer”超类的子类。所有实际比赛都必须在“经理”课程中完成。比赛达到100个单位,第一个达到这个距离的赛车获胜。

要求如下:

一个通用的racer类,用作各个racer类的超类。它不需要 是抽象的,但不打算实例化为对象。

上述每种赛车类型的特定赛车类。这些类都是泛型racer类的子类。

一个经理类,它创建至少一个上述每种类型的赛车,模拟比赛,并通知用户胜利者。注意:GUI不是必需的,也不是理想的。

我有一些问题使这项工作正常,我不确定我是否以有效的方式进行设计。

我有一个Manager类,一个Racer超类和四个RacerType_子类。每个RacerType_子类都有自己的移动模式。我无法弄清楚的是如何从Manager类调用独特的运动方法,甚至从Racer超类调用。调用四种不同运动方法的最佳方法是什么,然后跟踪它们的值以增加每个赛车手位置的总距离?

1 个答案:

答案 0 :(得分:0)

使您的Racer超类抽象并包含一个名为move的抽象方法。然后,当您将Racer扩展到每个racer类型时,您可以编写唯一的方法,这些方法都返回一个指示移动距离的值。

这使您可以创建一个列表列表并直接从数组中调用move方法

像这样

Racer racerLists[] = new Racer[4];
racerLists[0] = new Motorcycle();
racerLists[1] = new Car();
racerLists[2] = new Bike();
racerLists[4] = new Runner();

for(int i=0; i<racerLists.length; i++)
{
    racerLists[i].move();
}

每个赛车手都有自己独特的移动方法。

如果这回答了您的问题,请不要忘记将此标记为答案。 感谢