public class UndoableDictionary : UpdateableCollection { public override void TestFunc () { } } public abstract class UpdateableCollection { internal void AddReferences () { } public virtual void TestFunc () { } class X : UndoableDictionary { } } public class C { public static int Main () { new UndoableDictionary (); return 0; } }