在C#中,当您想要调用一个子类方法,而不知道它是一个子类实例时,可以使用多态性。多态性允许您使用基类类型的引用来调用派生类中的方法。以下是一个示例:
using System;
public class BaseClass
{
public virtual void Method()
{
Console.WriteLine("Base class method");
}
}
public class DerivedClass : BaseClass
{
public override void Method()
{
Console.WriteLine("Derived class method");
}
}
public class Program
{
public static void Main()
{
BaseClass baseClass = new DerivedClass();
baseClass.Method();
}
}
在这个示例中,我们创建了一个基类BaseClass
和一个派生类DerivedClass
。DerivedClass
重写了Method()
方法。然后,在Main()
方法中,我们创建了一个DerivedClass
实例,并将其引用存储在BaseClass
类型的变量中。当我们调用Method()
方法时,将调用DerivedClass
中的重写方法,因为这是实际的实例。
在您的问题中,您提到了C#调用重写的子类方法,而不知道它是一个子类实例。这是一个典型的多态性用例,可以让您在不了解实际实例类型的情况下调用子类方法。
领取专属 10元无门槛券
手把手带您无忧上云