在某论坛看到如下,第一二点我知道  第三点就不理解了,麻烦各位用简单的代码来解释下第三点是如何实现的!实现了如下多态三大要素,也就实现了多态:
 第一:在父类中定义虚拟方法。
 第二:在子类中覆盖父类中的虚拟方法。
 第三:申明父类实例的变量,则该变量既可以指向父类的实例,也可以指向子类的实例。当变量指向父类实例时,调用的是父类方法;当变量指向子类实例时,调用的是子类同名方法。

解决方案 »

  1.   


    public class A
    {
     public virtual void method(){}
    }
    public class B:A
    {
     public override void method(){}
    }
    A a=A();
    a.method();//调用父类的方法
    A b=B();
    b.method();//调用子类的方法
      

  2.   

    base.方法(); 调用父类的方法。
      

  3.   

    2楼的代码能说明问题
    不过在实例化类时应用new关键字A a=A();
    ----
    A a=new A();
      

  4.   

     public class A
        {
            public virtual void method()
            {
                Console.WriteLine("A");
            }
        }
        public class B : A
        {
            public override void method() 
            {
                Console.WriteLine("B");
            }
        }    public class C
        {       
            static void Main(string[] args)
            {
                A a = new A();
                a.method();//调用父类的方法
                A b = new B();
                b.method();//调用子类的方法           
            }  
        } A
    B
    Press any key to continue . . .