如何接收共享方法 Java 的实例化类数组



这是我学习抽象课的第一周,我有下一个练习:

假设我有下一个示例:我有 2 种型号,电动自行车和手动自行车。两者都与不同的实现共享所有属性和方法。但电动自行车也有电池持续时间

正因为如此,我创建了一个名为 Bike 的抽象类,它具有抽象方法的所有共享属性和接口。

此外,我还有一个容器类,让我们调用该BicycleShop,该方法应接收一组自行车,包括电动自行车和手动自行车。

我的问题是,这种方法应该收到什么?因为它的参数 Bike[] 不准确。它应该接收 2 个参数,电动自行车[] 和手动自行车[]?

您的方法应收到一个Bike[]参数。因为ElectricalBikeManualBike延伸Bike.所以他们两个都是Bike.

然后在您的方法中,您可以将参数转换为Bike[].

public void yourMethod(final Bike[] bikes) {
if(bikes.length > 0) {
if(bikes[0] instanceof ManualBike) {
final ManualBike manualBikes = Arrays.copyOf(bikes, bikes.length, ManualBike.class);
// do something
} else if(bikes[0] instanceof ElectricalBike) {
final ElectricalBike elecBikes = Arrays.copyOf(bikes, bikes.length, ElectricalBike.class);
// do something
} 
}
}

最新更新