public interface I
{
	dynamic D ();
	object D2 ();
}

public class C : I
{
	public object D ()
	{
		return null;
	}
	
	public dynamic D2 ()
	{
		return null;
	}
	
	public static int Main ()
	{
		return 0;
	}
}

abstract class AC
{
	public abstract void Foo(dynamic[] d);
}

class BC : AC
{
	public override void Foo(params object[] d)
	{
	}
}