Human -- teacher Human h=new Human();
teacher t=(teacher)h;

解决方案 »

  1.   

    如果:
    C1 c = new C2();那么可以:C2 cc = (C2)c;如果:
    C1 c = new C1();那么:
    C2 cc = (C2)c;
    是错误的
      

  2.   

    如果你手里的实例本身是C2类型,只是被C1类型的变量引用,那么它可以被向下造型为C2类型的变量。
    如果不是,举个例子,C2中包含C1中没有的A属性,那么假设可以造型,那么造型后的对象的A属性从哪里来呢?所以说是不可以的。
      

  3.   

    可以试试 在C1中加上  implicit operator C2