关于 重写 和 覆盖。

最开始 觉得没区别 看了篇文章后发现有区别。

 

就是在当用子类创建父类的时候就有区别了

代码 直接用别人的了

当然。 转载得有出处 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());//输出“徐明祥” 

 

区别出来了。

在覆盖的时候  其实用子类创建父类 还是会输出父类的~

posted @ 2012-04-15 19:54  CallMeTommy  阅读(248)  评论(0)    收藏  举报