我在学习 Java 中的 OOP 概念和内部类时遇到了一个问题。
假设有一个类 CarFactory
,它具有返回 Car
的 buildCar()
方法。该工厂构建了多个实现汽车
的模型
。
因此,我创建了一个 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/