public abstract class Factory { public abstract Car createCar(); }
public class AodiFactory extends Factory{ public Car createCar(){ return new Aodi(); } }
public class BencFactory extends Factory{ public Car createCar(){ return new Benc(); } }
public class BMWFactory extends Factory{ public Car createCar(){ return new BMW(); } }
----------------------------------------------------------------------------
public abstract class Car { public abstract void run(); }
public class Aodi extends Car{ public void run(){ } }
public class BMW extends Car{ public void run(){ } }
public class Benc extends Car{ public void run(){ } }
public class Application { public static void main(String[] args) { Factory f1=new BencFactory(); Car benc=f1.createCar(); Factory f2=new BMWFactory(); Car bmw=f2.createCar(); Factory f3=new AodiFactory(); Car aodi=f1.createCar(); } }