Java 实例化实现接口(interface)的泛型类型

标签 java oop inner-classes

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

假设有一个类 CarFactory,它具有返回 CarbuildCar() 方法。该工厂构建了多个实现汽车模型

因此,我创建了一个 Car 接口(interface),并且 Models 实现了 Car

如何返回一个作为接口(interface)的Car

我知道我可以实例化一个实现汽车的Model,但我想创建一个通用方法来返回任何实现Car<的Model/.

CarFactory.java

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

汽车.java

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

模型示例.java

public class ModelExample implements Car {
  static CarFactory factory;

  public ModelExample() {
    this.factory = new CarFactory();
  }

  class Construct extends Car.Construct {
    void constructCar() {
      System.out.println("Model Example constructed");  
    }
  }
}

最佳答案

在 Java 中,您无法初始化接口(interface)。我建议你学习抽象工厂设计模式。

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

关于Java 实例化实现接口(interface)的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61113046/

相关文章:

java - 是否可以在一处定义 Maven 3 配置文件(及其激活策略)并在以后重用?

c# - 使用 C# 的 OOPS 查询

c# - 内部类属性使除外部类外的所有访问类只读

java - 当内部类中的变量值发生变化时,如何在整个外部类中更改变量值?

java - 用于 Java 桌面应用程序的最佳数据库是什么

java - Swing : Write in a JLabel

java - 正则表达式匹配某个字符串,直到该字符串下次出现

java - 在非集合中使用泛型

Python:在另一个类中访问一个类的属性和方法

java - Spring MVC 绑定(bind)嵌套对象