class ConvClass1()
{}
class ConvClass2():ConvClass1()
{}
ConvClass1  op1 = new  ConvClass1(); 
ConvClass2  op2 = op1;就是最下面一句实现的功能,谢谢!!!

解决方案 »

  1.   

    class   ConvClass1()            //定义一个类
    {} 
    class   ConvClass2():ConvClass1()      //定义一个类并继承ConvClass1类
    {} 
    ConvClass1     op1   =   new     ConvClass1();      //声明一个ConvClass1的对象
    ConvClass2     op2   =   op1;           //声明一个ConvClass2类的一个对象并用ConvClass1的对象实例化
      

  2.   

    在C#中如果直接这样写,应该会出现编译错误,因为ConvClass2是ConvClass1的子类,实际上是两个不同的类型,如果把代码改为:ConvClass2     op2   =   (ConvClass2)op1;运行时应该会出现类型转换错误,在面向对象的继承规则中,只有子类的类型向基类的类型兼容,否则是不允许的(本人对于继承还有还有很多不理解的地方,还请各位多多指教)
      

  3.   

    //这是类的继承和多态里的东西,首先定义一个ConvClass1(),然后ConvClass2()类继承ConvClass1()类:
    ConvClass1     op1   =   new     ConvClass1();//初始化类的一个实例
    ConvClass2     op2   =   op1; 
    然后把这个op1基类变量赋予派生类变量op2;作用是不用再进行强类型转换,就可以通过这个变量调用派生类的方法;
      

  4.   

    提点小错误吧
    首先,定义类和继承类是不需要括号的,应该为
    class   ConvClass1
    {} 
    class   ConvClass2:ConvClass1
    {} 
    其次,把基类变量赋值给派生类变量是需要强制转换的
    ConvClass1     op1   =   new     ConvClass1();   
    ConvClass2     op2   =   (ConvClass2)op1; 
    最后,这么做是有风险的,派生类是可以用赋值给基类来用,但是基类赋值给派生类容易出现问题。
    举个例子,就好像我们说:猫是动物,猫可以当作动物来处理,但你不能说动物是猫,而把动物当猫来处理。