Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# | Kaedah Maya

C# | Kaedah Maya

WBOY
WBOYasal
2024-07-24 01:31:141124semak imbas

C# | Virtual Methods

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

Dalam C#, kaedah maya ialah kaedah yang boleh ditindih dalam kelas terbitan. Ini membenarkan polimorfisme, di mana rujukan kelas asas boleh digunakan untuk menggunakan kaedah pada objek kelas terbitan.

Sintaks:

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

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

Contoh:

Pertimbangkan contoh berikut:

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
    }
}

Dalam contoh ini, kelas Haiwan mempunyai kaedah maya MakeSound(). Kelas Anjing dan Kucing mengatasi kaedah ini dengan pelaksanaannya sendiri. Apabila contoh Anjing dan Kucing diberikan kepada rujukan Haiwan, kaedah yang diganti dipanggil berdasarkan jenis objek sebenar, menunjukkan polimorfisme.

Apa Seterusnya?

Kaedah maya menyediakan cara untuk melaksanakan dan memanfaatkan konsep penghantaran kaedah dinamik dalam pengaturcaraan berorientasikan objek.

Atas ialah kandungan terperinci C# | Kaedah Maya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn