如何将接口转换为其他类型?
假设我有一个“汽车”类型的接口, 另一种类型的“卡车”。 我想将此接口转换为类型“ Vehicles”。
我该如何解决呢?
答案 0 :(得分:1)
您可以:
将当前实现Car
或Truck
的所有类更改为现在实现Vehicle
。
使Car
和Truck
扩展新界面Vehicle
。
例如。如果您目前有:
class A implements Car {
public void carDrive(){ ... }
}
class B implements Truck {
public void truckDrive(){ ... }
}
您可以将其更改为:
class A implements Vehicle {
public void vehicleDrive(){ ... }
}
class B implements Vehicle {
public void vehicleDrive(){ ... }
}
答案 1 :(得分:0)
如果我理解正确,那么您可以使用一些方法来访问Vehicle
接口。还有两个接口Car
和Truck
以及一些其他方法。您还想在Vehicle
和Car
接口中使用Truck
的方法吗?
在这种情况下,您可以使用extends
接口,类似于扩展类:
interface Vehicle{
// Some methods
}
interface Car extends Vehicle{
// Some methods
}
interface Truck extends Vehicle{
// Some methods
}
现在,如果您有这样的课程:
class Bmw implements Car{
// Overwrite methods of both the Cars and Vehicles interfaces
}
如果需要,您可以将Bmw
保存在Vehicles
的列表中:
List<Vehicle> allVehicles = new ArrayList<>();
Vehicle myBmw = new Bmw();
allVehicles.add(myBmw);