在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