У меня возник вопрос при изучении OOP концепции и внутренних классов в Java.
Допустим, есть класс CarFactory
, и у него есть метод buildCar()
, который возвращает Car
, Эта фабрика строит несколько Models
, которые реализуют Car
.
. Поэтому я создал Car
интерфейс и Models
орудие Car
.
Как вы можете вернуть Car
это интерфейс?
Я знаю, что могу создать экземпляр Model
, который реализует Car, но я хочу создать общий метод, который возвращает любой Model
, который реализует Car
.
CarFactory. java
public class CarFactory {
Car buildCar() {
return new Car(); // ??? I cannot do this
}
}
Car. java
public interface Car {
abstract class Construct {
abstract void constructCar();
}
void turn();
void stop();
void accelerate();
...
}
ModelExample. 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");
}
}
}