能不能帮忙看一段代码
object obj1 = new Bird();   
            if (obj1 is Runnable)
            {
                Console.WriteLine("可以飞");
                Runnable r2 = (Runnable)obj1;
                r2.Walk();                Runnable r3 = obj1 as Runnable;
                r3.Walk();
            }
  public interface Runnable
    {
        void Walk();
    }    public interface Flyable
    {
       void Fly();
    }public class Bird : Flyable, Runnable//"实现接口",“继承类”
    {        public void Fly()
        {
            Console.Write("小鸟飞");
        }        public void Walk()
        {
            Console.WriteLine("蹦跶的");
        }
我想问的是为何Runnable r2 = (Runnable)obj1把obj1转换为Runnable的类型后调用walk方法却是调用的Bird类中的walk方法。