using System;
interface IClonable { object Clone(); }
class A : IClonable
{
public object Clone() { return new A(); }
}
class B : A, IClonable
object IClonable.Clone() {
return new B();
public class Program
public static void Main()
A a = new B();
Console.WriteLine(a.Clone().GetType());
Console.WriteLine(((IClonable)a).Clone().GetType());