关于 重写 和 覆盖。
最开始 觉得没区别 看了篇文章后发现有区别。
就是在当用子类创建父类的时候就有区别了
代码 直接用别人的了
当然。 转载得有出处 http://www.cnblogs.com/xumingxiang/archive/2012/04/14/override_new.html
public class C1 { public virtual string GetName() { return "徐明祥"; } } public class C2 : C1 { public override string GetName() { return "xumingxiang"; } } C1 c1 = new C1(); Console.WriteLine(c1.GetName());//输出“徐明祥” C2 c2 = new C2(); Console.WriteLine(c2.GetName());//输出“xumingxiang” //重点看这里 C1 c3 = new C2(); Console.WriteLine(c3.GetName());//输出“xumingxiang”
public class C1 { public string GetName() { return "徐明祥"; } } public class C2 : C1 { public new string GetName() { return "xumingxiang"; } } C1 c1 = new C1(); Console.WriteLine(c1.GetName());//输出“徐明祥” C2 c2 = new C2(); Console.WriteLine(c2.GetName());//输出“xumingxiang” //重点看这里,和上面的重写作比较 C1 c3 = new C2(); Console.WriteLine(c3.GetName());//输出“徐明祥”
区别出来了。
在覆盖的时候 其实用子类创建父类 还是会输出父类的~

浙公网安备 33010602011771号