.net -- 方法表new,override

class Number
{
    public static int i = 123;
        
    public virtual void ShowInfo()
    {
        Console.WriteLine("Base Class ----");
    }

    public virtual void ShowNumber()
    {
        Console.WriteLine(i.ToString());
    }
}

class IntNumber: Number
{
    new public static int i = 456;

    public new void ShowInfo()
    {
        Console.WriteLine("Child class ---");
    }

    public override void ShowNumber()
    {
        Console.WriteLine("New Number : "+i.ToString());
    }

    public void MyMethod()
    {
        Console.WriteLine(111111111);
    }
}

就此例而言,ShowInfo是 new 的方法,ShowNumber 是 override 的方法,使用new之后会隐藏父类同名的方法

如果使用 IntNumber 的引用来 实例 IntNumber 类型,毫无疑问会调用 new 之后的方法

使用Number引用来实例 IntNumber 类型,如下图的 IntNumber 的方法表

如果有不理解方法表是什么的,我也帮不了你,我也是从多本书里面才把方法表看全了

猜你喜欢

转载自blog.csdn.net/qq_33413868/article/details/81611043
net