using System.Globalization;
using System.Collections.Generic;
public static void Main()
List<Parent<IParent>> parentList = new List<Parent<IParent>>();
parentList.Add(new Child1());
parentList.Add(new Child2());
parentList[0].parentMethod("Child 1 says Hi!");
parentList[1].parentMethod("Child 2 says Hello!");
((Child1)parentList[0]).methodOfChild();
((Child2)parentList[1]).methodOfChild();
public void parentMethod(string msgFromChild)
Console.WriteLine("Inside Parent, msg from child:" + msgFromChild);
public class Child1 : Parent<IParent>, IParent
public void methodOfChild()
Console.WriteLine("Inside child 1");
public class Child2 : Parent<IParent>, IParent
public void methodOfChild()
Console.WriteLine("Inside child 2");