虽然机房收费系统的代码已经写完了,但是对于.net平台的一些机制的认识还是模模糊糊,记得在学习设计模式的时候就遇到了“虚方法”这个概念,但是对于“虚方法”的认识却好似一团迷雾,今天下午花了一个多小时的时间来研究这个小东东,现在总结一下对“虚方法”的认识,如有不合理之处,望各位大牛们多多斧正。
对于虚方法的官方解释比较复杂,这里就用我的理解来个通俗的解释。虚方法是相对于非虚的方法而言的,两者的区别体现在基类和派生类中的运用上。下面通过网上粘来的一个小例子来说明问题。
class A
{
public void F() { Console.WriteLine( "A.F "); }
public virtual void G() { Console.WriteLine( "A.G "); }
}
class B: A
{
new public void F() { Console.WriteLine( "B.F "); }
public override void G() { Console.WriteLine( "B.G "); }
}
class Test
{
static void Main() {
B b = new B();