Java 将接口转换为不同类型
如何将接口转换为其他类型 假设我有一个“Cars”类型的界面 另一种是“卡车”。 我想将此接口转换为“车辆”类型 我该如何解决这个问题呢?您可以:Java 将接口转换为不同类型,java,Java,如何将接口转换为其他类型 假设我有一个“Cars”类型的界面 另一种是“卡车”。 我想将此接口转换为“车辆”类型 我该如何解决这个问题呢?您可以: 将当前实施汽车或卡车的所有类别改为现在实施车辆 使Car和Truck扩展新界面Vehicle 例如,如果您目前有: class A implements Car { public void carDrive(){ ... } } class B implements Truck { public void truckDrive(){
汽车
或卡车
的所有类别改为现在实施车辆
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(){ ... }
}
如果我理解正确,您有一个带有一些方法的界面
Vehicle
。还有两个接口Car
和Truck
,还有一些附加方法。您还想在Car
和Truck
界面中使用Vehicle
的方法吗
如果是这种情况,您可以扩展
接口,与扩展类类似:
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
保存在车辆列表中
:
List<Vehicle> allVehicles = new ArrayList<>();
Vehicle myBmw = new Bmw();
allVehicles.add(myBmw);
List allVehicles=new ArrayList();
车辆myBmw=新Bmw();
所有车辆。添加(myBmw);
为什么要转换接口?您根本无法转换。@B001ᛦ 因为我已经有了这两个接口的实例,并且希望将它们放在一个接口中。接口可以扩展其他接口,所以假设我正确理解您的意思,只需创建一个新接口Vehicle
(无复数),将通用方法声明移动到该新接口,并让其他接口扩展它。然后,实现这两个接口之一的所有类也实现了新接口。如果您想摆脱它们,那么您应该能够在每次使用的基础上用代码中的新接口替换它们。