将接口转换为其他类型

时间:2018-11-05 13:49:56

标签: java

如何将接口转换为其他类型?

假设我有一个“汽车”类型的接口, 另一种类型的“卡车”。 我想将此接口转换为类型“ Vehicles”。

我该如何解决呢?

2 个答案:

答案 0 :(得分:1)

您可以:

  1. 将当前实现CarTruck的所有类更改为现在实现Vehicle

  2. 使CarTruck扩展新界面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接口。还有两个接口CarTruck以及一些其他方法。您还想在VehicleCar接口中使用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);