Part IV Inheritance and Polymorphism 1, write the following interface iProduct, iShoppingCart. IProduct must contain the following attributes: Name, Price, Description IProduct must include the following methods: ShowProductDetail (details product display mode using the console output) IShoppingCart must contain the following attributes: ProductCount, TotalPrice IShoppingCart must include the following methods: AddProduct, RemoveProduct, ShowallProducts, GetProductByindex
2. Write the class products, ShoppingCart, implement interface iProduct, Ishopping, IshoppingCart, where produter declares as Abstract, where addproduct, removeproduct declares as Virtual, Product Declaration as Virtual
3. Write class Chocolate, Notebook, Shoe, MobilePhone and other derived properties, plus the unique properties of the items described in these classes, and rewrite the ShowProductDetail method;
4, write a class derived from the class CustomShoppingCart Product, method of covering the original base class Product AddProduct inside, RemoveProduct, so CustomShoppingCart inside AddProduct RemoveProduct only accepts and Chocolate type of product (based on operator input in the method is Parameter type)
5. Write a static main method, create a ShoppingCart class instance, join multiple types of different Products (Chocolate, Notebook, Shoe, Mobilephone, etc.), and call the ShowAllProducts method to print out all Product information
6. Create a CustomShoppingCart class instance, join multiple Name properties different Chocolate products, call ShowAllProducts to display all items