在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
