gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:31:30 25 4
gpt4 key购买 nike

我在学习 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com