调用派生类方法而不是基类方法c#

时间:2018-06-01 16:08:33

标签: c# class inheritance polymorphism

我在程序中有这个数组

ClassA[] array=new ClassA[20];

array[0]=new ClassB();
array[1]=new ClassA();

这是类文件

public class ClassA
{
    public void method()
    {
        Console.WriteLine("1");
    }
}

public class ClassB : ClassA
{
    public void method()
    {
        Console.WriteLine("2");
    }
}

在两种情况下都写1,但我想在第一种情况下写2,(调用ClassB的方法)。
怎么做?

1 个答案:

答案 0 :(得分:1)

如果要覆盖子类中的方法,则必须在C#中使用override关键字。

public class ClassA
{
    public virtual void method()
    {
        Console.WriteLine("1");
    }
}

public class ClassB : ClassA
{
    public override void method()
    {
        Console.WriteLine("2");
    }
}

问候。