using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleAppsTest { class Program { static void Main(string[] args) { D d = new D(); A a = d; B b = d; C c = d; a.F(); b.F(); c.F(); d.F(); a.F1(); a.F2(); c.F1(); c.F2(); Console.ReadKey(); } } public class A { public virtual void F() { Console.WriteLine("A.F"); } public void F1() { Console.WriteLine("A.F1"); } public virtual void F2() { Console.WriteLine("A.F2"); } } public class B : A { public override void F() { Console.WriteLine("B.F"); } } public class C : B { new public virtual void F() { Console.WriteLine("C.F"); } new public void F1() { Console.WriteLine("C.F1"); } } public class D : C { public override void F() { Console.WriteLine("D.F"); } } } 如果有子类new 一个方法时,就表示覆盖了基类的该方法,调用时就执行自己的new方法; |
|
来自: 昵称10504424 > 《C#》