C#中的关键字Virtual

在C#中,关键字virtual用于修改方法,属性,事件声明,并允许将其覆盖在派生类中。
当我们想要将基类的方法覆盖到派生类方法时,必须在基类中创建为虚拟方法。
当在基类中声明为虚拟的方法时,可以在基类中定义该方法,因此派生类是可选的,以覆盖该方法。

C# Virtual关键字示例

using System;

using System.Collections.Generic;

using System.Text;

namespace virtualsample

{

    class Shape

    {

        protected float R, L, B;

        public virtual float Area()

        {

 

            return 3.14F * R * R;

        }

        public virtual float Circumference()

        {

            return 2 * 3.14F * R;

        }

   }

   class Rectangle : Shape

    {

        public void GetLB()

        {

            Console.Write("输入长度 :  ");

            L = float.Parse(Console.ReadLine());

            Console.Write("输入宽度 : ");

            B = float.Parse(Console.ReadLine());

        }

        public override float Area()

        {

 

            return L * B;

        }

       public override float Circumference()

        {

            return 2 * (L + B);

        }

    }

   class Circle : Shape

    {

        public void GetRadius()

        {

            Console.Write("输入半径 :  ");

            R = float.Parse(Console.ReadLine());

        }

    }

   class MainClass

    {

        static void Main()

        {

            Rectangle R = new Rectangle();

            R.GetLB();

            R.Area();

            Console.WriteLine("面积 : {0}", R.Area());

            Console.WriteLine("周长 : {0}", R.Circumference());

            Console.WriteLine();

            Circle C = new Circle();

            C.GetRadius();

            Console.WriteLine("面积 : {0}", C.Area());

            Console.WriteLine("周长 : {0}", C.Circumference());

            Console.Read();

        }

    }

}
日期:2020-04-11 23:03:56 来源:oir作者:oir