public class D { public virtual void Run(string name) { Console.WriteLine(name + ",good"); } public void play(D d) { d.Run("mike"); Run("jack"); } } public class D1 : D { public override void Run(string name) { Console.WriteLine("I'm " + name + ",good"); } }
调用
D d = new D(); D1 d1 = new D1(); d1.play(d);
结果
分析
父类D的调用方法
d.Run("mike");
Run("jack");
有什么区别啊?求解释。为啥 Run("jack")的调用方法会被重写。