今天经理突然问我虚方法的含义,作为一只菜鸟是真心不明白,百度之后,在此做点记录方便以后查找
虚方法的作用主要是用于实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数
下面的例子:
这里定义了3个类,分别是First,Second,Third
class First
{
public virtual string Post()
{
return "我是First";
}
}
class Second : First
{
public override string Post()
{
return "我是Second";
}
}
class Third : First
{
}
下面是调用方法:
private void button1_Click(object sender, EventArgs e)
{
First a = new Second();
MessageBox.Show(a.Post());
}
First是声明类,Second是实例类
在这种情况下出现的结果是
说明执行的是Second类里的方法
private void button1_Click(object sender, EventArgs e)
{
First a = new Third();
MessageBox.Show(a.Post());
}

执行到的是A里的方法
若方法不声明为虚方法,则会出现错误 1 “WinTest.Second.Post()”: 继承成员“WinTest.First.Post()”未标记为 virtual、abstract 或 override,无法进行重写