public abstract void Interact(AbstractProductA a);
 public override void Interact(AbstractProductA a)
 {
     Console.WriteLine(this.GetType().Name +
                       " interacts with " + a.GetType().Name);
 }
 // Constructor
 public Client(AbstractFactory factory)
 {
     _abstractProductB = factory.CreateProductB();
     _abstractProductA = factory.CreateProductA();
 }