//virtual修饰方法、属性、索引器或事件
using System;
namespace vitualN
{
    class A
    {
        public virtual void F()
        {
            Console.WriteLine("A.F");
        }
    }
    class B : A
    {
        //public void F()//第一回调试,程序会提示隐藏了继承成员A。F(),如果有意隐藏请使用new关键字,程序可运行得:A.F和B.F
        //{
        //    Console.WriteLine("B.F");
        //}


        //public new void F()//程序可运行得:A.F和B.F
        //{
        //    Console.WriteLine("B.F");
        //}


        public override void F()//把A中的方法加上了关键字:virtual,程序可运行得:B.F和B.F
        {
            Console.WriteLine("B.F");
        }

    }
    class Test
    {
        static void Main()
        {
            B b = new B();
            A a = b;
            b.F();
            a.F();
        }
    }
}

posted on 2008-01-25 15:25  glave  阅读(485)  评论(0)    收藏  举报