public static void Main(string[] args) { List <A> alist = new List <A> { new B(), new C(), new D() }; PersistenceLayer persistenceLayer = new PersistenceLayer(); foreach (A a in alist) { persistenceLayer.Foo(a); } }