private static void AbstractFactoryDemo()
        {
            //parent calss object instance is created by its child class.
            //the parent class can olny see method that is created that its child us. any child types
            //created can not be seen unless it was first created by the parent.



            AbstractBikeFactory factory   = new RoadBikeFactory();
            IBikeFrame          bikeFrame = factory.CreateBikeFrame();
            //create bike seat method of factory object @return IBikeseat to object bikeseat
            //create the Bike part


            IBikeSeat bikeSeat = factory.CreateBikeSeat();

            //create Bikeseat method of factory object @return IBikeseat to object bikeseat

            // shaow what we created and interface object calls the property Bikeseatparts
            //bikeseat was created from the class roadseat
            //the propeerty of bikeseatparts uses the get to return the string value from roadseat.
            Console.WriteLine(bikeFrame.BikeFrameParts);// this is properties
            Console.WriteLine(bikeSeat.BikeSeatParts);
        }