在C#中,虚方法和重写方法(override)都是用来实现多态性的概念,但它们之间有一些重要的区别:
public class BaseClass
{
public virtual void Method()
{
Console.WriteLine("Base method");
}
}
public class DerivedClass : BaseClass
{
public override void Method()
{
Console.WriteLine("Derived method");
}
}
public class DerivedClass : BaseClass
{
public override void Method()
{
base.Method(); // 调用基类中的方法
Console.WriteLine("Derived method");
}
}
因此,与虚方法相比,重写方法必须在派生类中重新实现基类中的虚方法,而虚方法可以在基类中有默认实现。