Java实例化实现接口的泛型类型

时间:2020-04-09 02:32:14

标签: java oop inner-classes

在研究Java中的OOP概念和内部类时遇到了一个问题。

假设有一个类CarFactory,它有一个buildCar()方法,该方法返回一个Car。该工厂将构建几个实现Models的{​​{1}}。

因此,我制作了一个Car接口和Car实现Models

如何返回作为接口的Car

我知道我可以实例化实现Car的Car,但是我想创建一个通用方法,该方法返回实现Model的任何Model

CarFactory.java

Car

Car.java

public class CarFactory {
  Car buildCar() {
    return new Car();  // ??? I cannot do this 
  }
}

ModelExample.java

public interface Car {
  abstract class Construct {
    abstract void constructCar();
  }
  void turn();
  void stop();
  void accelerate();
  ...
}

1 个答案:

答案 0 :(得分:0)

在Java中,您无法初始化接口。我建议您研究“抽象工厂”设计模式。

对于您的情况,您需要一个接口AbstractCarFactory,其中包含方法Car buildCar。然后,您可以为每种汽车创建AbstractCarFactory的子类。

相关问题