using System; public class GenericType where U : IEquatable { public U u; } public class Base { public virtual T Test (GenericType gt) where T : IEquatable { return gt.u; } } public class Override : Base { public override T Test (GenericType gt) { return base.Test (gt); } public static int Main () { Base b = new Override (); b.Test (new GenericType ()); return 0; } }