关于virtual,new,override用法详解

(一)

public class A
    {
        public virtual string Fun()
        {
            return "A";
        }
    }
    public class B : A
    {
        public override string Fun()
        {
            return "B";
        }
    }
    public class C : B
    {
        public new string Fun()
        {
            return "C";
        }
    }

protected void Page_Load(object sender, EventArgs e)
    {
        A a = new A();
        B b = new B();
        A c = new C();

        Response.Write( a.Fun());
        Response.Write(b.Fun());
        Response.Write(c.Fun());

    }

输出结果如下: ABB

protected void Page_Load(object sender, EventArgs e)
    {
        A a = new A();
        B b = new B();
        C c = new C();

        Response.Write( a.Fun());
        Response.Write(b.Fun());
        Response.Write(c.Fun());

    }

输出结果如下: ABC

原文地址:https://www.cnblogs.com/relang99/p/1287742.html