using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
VirtualBase b = new VirtualBase();
SubClass1 b1 = new SubClass1();
SubClass2 b2 = new SubClass2();
b.A();
b1.A();
b2.A();
Console.WriteLine("----------");
b = b1;
b.A();
b = b2;
b.A();
}
}
class VirtualBase
{
public virtual void A()
{
Console.WriteLine("VirtualBase class virtual method A()");
}
}
class SubClass1 : VirtualBase
{
public new void A()
{
Console.WriteLine("SubClass1 class new method A()");
}
}
class SubClass2 : VirtualBase
{
public override void A()
{
Console.WriteLine("SubClass2 class override method A()");
}
}
}
Test Result:
VirtualBase class virtual method A()
SubClass1 class new method A()
SubClass2 class override method A()
----------
VirtualBase class virtual method A()
SubClass2 class override method A()
Press any key to continue . . .
new 只是在继承类中重写了一个新的方法,override是继承类重写了父类中的方法。override|重写的方法,父类中必须是marked virtual, abstract, or override
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12476590/viewspace-545329/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12476590/viewspace-545329/