在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");
}
}
因此,與虛方法相比,重寫方法必須在派生類中重新實現基類中的虛方法,而虛方法可以在基類中有默認實現。