父类:
public class A { public void FunctionA() { FunctionB(); } public virtual void FunctionB() { } } public class B : A { public void main() { B b = new B(); b.FunctionA(); } public override void FunctionB() { //具体实现 } }FunctionA为轮询方法,其中有公告的方法实现,FunctionA根据条件调用FunctionB,但是FunctionB中的业务逻辑不确定,根据具体实现场景不同,如可能是新建、删除等,所以将FunctionB定义为virtual,子类B继承父类A,并override虚方法FunctionB,这样在b.FunctionA()时,先执行a.FunctionA(),再执行b.functionB(实现了虚方法的具体逻辑),这样就可以根据不同的子类场景编写不同的FunctionB的处理逻辑
犯二的时刻:刚开始实例化的是A,即A a=new A(),执行a.FunctionA(),始终进入不了override的方法体内