溫馨提示×

C#虛擬類怎樣實(shí)現(xiàn)繼承

c#
小樊
83
2024-09-20 01:29:23
欄目: 云計(jì)算

在 C# 中,虛擬類不能直接被繼承

  1. 創(chuàng)建一個基類(BaseClass):
public class BaseClass
{
    public virtual void Method1()
    {
        Console.WriteLine("Method in Base Class");
    }

    public void Method2()
    {
        Console.WriteLine("Method in Base Class");
    }
}

在這個例子中,BaseClass 有一個虛擬方法 Method1() 和一個非虛擬方法 Method2()

  1. 創(chuàng)建一個派生類(DerivedClass),并將基類的虛擬方法覆蓋實(shí)現(xiàn):
public class DerivedClass : BaseClass
{
    public override void Method1()
    {
        Console.WriteLine("Overridden Method in Derived Class");
    }
}

在這個例子中,DerivedClass 覆蓋了基類的虛擬方法 Method1()

  1. 測試代碼:
class Program
{
    static void Main(string[] args)
    {
        BaseClass baseObj = new BaseClass();
        baseObj.Method1(); // 輸出 "Method in Base Class"
        baseObj.Method2(); // 輸出 "Method in Base Class"

        DerivedClass derivedObj = new DerivedClass();
        derivedObj.Method1(); // 輸出 "Overridden Method in Derived Class"
        derivedObj.Method2(); // 輸出 "Method in Base Class"
    }
}

在這個測試代碼中,我們創(chuàng)建了一個 BaseClass 對象和一個 DerivedClass 對象。當(dāng)我們調(diào)用 Method1() 時,派生類覆蓋了基類的實(shí)現(xiàn)。而當(dāng)我們調(diào)用 Method2() 時,派生類沒有覆蓋基類的實(shí)現(xiàn),因此它使用了基類的實(shí)現(xiàn)。

0