public class DrivClass : BaseClass { string attributeValue; public override string Attritube { get { return attributeValue; } set { attributeValue = value; } } public override void AbstractFun(string value) { attributeValue = value; } public override event EventHandler AbstractEvent; } public class VirtualClassBase { public virtual void PrintHello(string value) { Console.Write(value); } } public class BirdFlyClass : VirtualClassBase { public void PrintHello(string value) { base.PrintHello(value); } } class Program { static void Main(string[] args) { DrivClass d = new DrivClass(); d.AbstractFun("a"); Console.Write(d.Attritube); BirdFlyClass b = new BirdFlyClass(); b.PrintHello("hello"); VirtualClassBase v = new BirdFlyClass(); v.PrintHello("c"); Console.ReadLine(); } } virtual方法可以重写。呵呵。