//可以运行一下试试~你就会明白
using System;
using System.Collections.Generic;
using System.Text;
namespace test
{
class Program
{
static void Main(string[] args)
{
FlowB flowB = new FlowB();
flowB.Run(); //复用了Flow的流程并采用了自己的B步骤
Console.ReadLine();
}
}
public class Flow
{
public void A()
{
Console.WriteLine("F A");
}
public virtual void B()
{
Console.WriteLine("F B");
}
public void C()
{
Console.WriteLine("F C");
}
public void Run()
{
A();
B(); //步骤B是扩展点 ,可以由子类决定具体执行什么
C();
}
}
public class FlowA : Flow
{
public override void B()
{
//执行FlowA的B步骤
}
}
public class FlowB : Flow
{
public override void B()
{
Console.WriteLine("FBB");
}
}
//验证猜想,再加一步继承父类
public class FlowC : FlowB
{
public override void B()
{
Console.WriteLine("FCC");
}
}
}
简单理解:虚方法=fake方法,假的,调用的时候,父类的内容如果被子类重写了,则不会去去调用,会找到最下面的那个子类中重写的那个方法去运行。所以我们之前写的虚方法就是假的,没用的了,顾名思义~
C#虚方法(Virtual)简单理解
最新推荐文章于 2022-03-31 18:10:23 发布