using System; public interface IList { int Map (S item); } public class List : IList { public int Map (U item) { return 1; } } public class SpecialList : IList { public int Map (W item) { return 2; } } class X { public static int Main () { IList list = new List (); int result = list.Map ("Hello"); if (result != 1) return 1; IList list2 = new SpecialList (); int result2 = list2.Map ("World"); if (result2 != 2) return 2; return 0; } }