如何解决java - 如何接收一组共享方法的实例化类java
这是我学习抽象课程的第一周,我有下一个练习:
假设我有下一个示例:我有 2 个模型,ElectricBike 和 ManualBike。两者共享具有不同实现的所有属性和方法。但是 ElectricBike 也有 BatteryDuration
因此,我创建了一个名为 Bike 的抽象类,它具有所有共享属性和抽象方法的接口。
我还有一个容器类,让我们调用 BicycleShop,它有一个方法可以接收自行车数组,包括电动自行车和手动自行车。
我的问题是,该方法应该接收什么?因为 Bike[] 的说法是不准确的。它是否应该接收 2 个参数,ElectricBike[] 和 ManualBike[]?
解决方法
您的方法应该接收一个 Bike[]
参数。因为 ElectricalBike
和 ManualBike
扩展了 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,ElectricalBike.class);
// do something
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。