package demo;
public abstract class Car {
public abstract String getCarInfo();
}
package demo;
public class BMW extends Car {
@Override
public java.lang.String getCarInfo() {
return "BMW";
}
}
package demo;
public class Benz extends Car{
@Override
public String getCarInfo() {
return "Benz";
}
}
package demo;
public class CarFactory {
public static Car getCar(String name){
if (name.equalsIgnoreCase("BMW")){
return new BMW();
} else if (name.equalsIgnoreCase("Benz")){
return new Benz();
}else {
return null;
}
}
}
package demo;
public class Customer {
public static void main(String[] args) {
System.out.println("Customer want BMW");
Car bmwCar = new CarFactory().getCar("BMW");
System.out.println("Customer get car" + bmwCar.getCarInfo());
System.out.println("Customer want Benz");
Car benzCar = new CarFactory().getCar("Benz");
System.out.println("Customer get car" + benzCar.getCarInfo());
}
}