我想学习一下  多态
定义了 两个类 A  
           类 B
      B继承了A,  即B是A的子类, A是B的基类那么想要执行多态 ,是不是在A的方法中加入 virtual         在B的方法中加入override  然后
         B b = new A();         b.b_mode(); 这样就可以了吧?    但是我编写的代码,怎么报错。  B b = new A(); 这个地方有错。

解决方案 »

  1.   

    A a = new b();a.b_mode();理解一下什么叫多态. 
      

  2.   

     A是B的基类
    只能 A b = new B();
      

  3.   

    A a = new B();
    这样才对,LZ不理解多态的概念。多态是允许将父对象设置成为和一个或多个它的子对象相等的技术,比如Parent:=Child; 多态性使得能够利用同一类(基类)类型的指针来引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作
    比如:定一个Person接口(可以是Inderface也可以是Class)有动作Speak(),然后定义Teacher,Student类实现Person接口。
    接下来就能如下定义:
    Person a = new Teacher();
    Person b = new Student();
    a,b表现出来的就是多态,因为可以如下调用:
    a.Speak();
    b.Speak();
    a,b的Speak动作调用的是不同的