ホームページ  >  記事  >  バックエンド開発  >  C# |仮想メソッド

C# |仮想メソッド

WBOY
WBOYオリジナル
2024-07-24 01:31:141124ブラウズ

C# | Virtual Methods

Note
You can check other posts on my personal website: https://hbolajraf.net

C# では、仮想メソッドは派生クラスでオーバーライドできるメソッドです。これによりポリモーフィズムが可能になり、基本クラス参照を使用して派生クラス オブジェクトのメソッドを呼び出すことができます。

構文:

public class BaseClass
{
    public virtual void MyVirtualMethod()
    {
        // Base class implementation
    }
}

public class DerivedClass : BaseClass
{
    public override void MyVirtualMethod()
    {
        // Derived class implementation
    }
}

例:

次の例を考えてみましょう:

using System;

public class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Animal makes a generic sound");
    }
}

public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Dog barks");
    }
}

public class Cat : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Cat meows");
    }
}

class Program
{
    static void Main()
    {
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myDog.MakeSound();  // Output: Dog barks
        myCat.MakeSound();  // Output: Cat meows
    }
}

この例では、Animal クラスに仮想メソッド MakeSound() があります。 Dog クラスと Cat クラスは、独自の実装でこのメソッドをオーバーライドします。 Dog と Cat のインスタンスが Animal 参照に割り当てられると、オーバーライドされたメソッドが実際のオブジェクト タイプに基づいて呼び出され、ポリモーフィズムを示します。

次は何?

仮想メソッドは、オブジェクト指向プログラミングにおける動的メソッド ディスパッチの概念を実装および活用する方法を提供します。

以上がC# |仮想メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。