溫馨提示×

override c#與虛方法的區別是什么

小樊
111
2024-07-22 18:37:04
欄目: 編程語言

在C#中,虛方法和重寫方法(override)都是用來實現多態性的概念,但它們之間有一些重要的區別:

  1. 虛方法(virtual method):在基類中聲明為虛方法的方法可以在派生類中被重寫。虛方法在基類中有默認的實現,但派生類可以選擇性地重寫該方法來提供自己的實現。使用關鍵字"virtual"來聲明虛方法。
public class BaseClass
{
    public virtual void Method()
    {
        Console.WriteLine("Base method");
    }
}

public class DerivedClass : BaseClass
{
    public override void Method()
    {
        Console.WriteLine("Derived method");
    }
}
  1. 重寫方法(override method):在派生類中重寫基類中的虛方法,使用關鍵字"override"來標記方法的重寫。重寫方法必須具有與基類中虛方法相同的簽名(返回類型、方法名、參數列表)。重寫方法可以訪問基類中的方法,使用關鍵字"base"。
public class DerivedClass : BaseClass
{
    public override void Method()
    {
        base.Method(); // 調用基類中的方法
        Console.WriteLine("Derived method");
    }
}

因此,與虛方法相比,重寫方法必須在派生類中重新實現基類中的虛方法,而虛方法可以在基類中有默認實現。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女