using System;
public class Program
{
public interface ITest
void Foo(int x);
}
class Base : ITest
public virtual void Foo(int x)
Console.WriteLine("Base.Foo(int)");
class Derived : Base
public void Foo(int x)
Console.WriteLine("Derived.Foo(int)");
public void Foo(object o)
Console.WriteLine("Derived.Foo(object)");
public static void Main()
Derived d = new Derived();
int i = 10;
d.Foo(i);